나는 몽구스 개체에서 속성을 인쇄 할 옥 템플릿을 사용합니다. 이 객체는 mongoose의 dbref와 같은 채우기 기능을 통해 채워진 속성을 가지고 있습니다. 템플릿이 렌더링 될 때 나는 말도 안되게된다. 브라우저Jade는 "채워진"몽구스 속성에 대한 템플릿에서 예기치 않은 값을 렌더링합니다.
a.training-link(href='/training/#{training.details.id}') ...
: 경로 템플릿
User.findById(req.params.user, function(err, user){
res.render('training', {training:user.training});
}).populate('training.details');
에
:
간단한 예
는<a href="/training/O >°Cm5�" class="training-link">...</a>
처음 페이지가로드되고 , 어디서 나는 규칙적인 몽고 16 진수 문자열 (4fac4e5f379cb0a68100015d)을 "O > ° Cm5 "와 같이 얻을 것으로 기대한다. 이는 서버를 다시 시작한 후 첫 페이지로드에서만 발생합니다. 모든 후속 페이지로드가 예상대로 렌더링됩니다.
여기에 무슨 일이 일어나고 어떻게 해결할 수 있습니까?
감사합니다.
두 가지 질문 : 1.'populate' [재귀 적입니다] (https://github.com/LearnBoost/mongoose/issues/601). 귀하의 예제에서, 당신은'user.training'을 채우고 있습니다. 'user.training.details'도 채웠습니까? 2. 렌더링하기 전에 채우기가 완료 되었습니까? 'findById' 콜백 대신에'populate' 콜백에서 렌더링을하지 않으시겠습니까? – Nate
당신은 절대적으로 옳습니다. 내 필사본에 난잡했다. '.populate ('training.details')'를 읽어야합니다. 나는 이것을 반영하기 위해 나의 질문을 편집했다. – smabbott