У меня есть шаблон нефрита, где я распечатываю свойства из объекта mongoose. Объект имеет свойства, которые были заполнены функцией dbref-типа заполнения мангуста. Когда шаблон создает, я получаю глупость.Jade отображает неожиданные значения в шаблонах для «заселенных» свойств мангуста
упрощенный пример:
в маршруте
User.findById(req.params.user, function(err, user){
res.render('training', {training:user.training});
}).populate('training.details');
в шаблоне:
a.training-link(href='/training/#{training.details.id}') ...
в браузере:
<a href="/training/O >°Cm5�" class="training-link">...</a>
В первый раз, когда страница загружается , где Я ожидал бы регулярную шестнадцатеричную строку mongo (4fac4e5f379cb0a68100015d). Я получаю что-то вроде «O > ° Cm5 ». Это происходит только при загрузке первой страницы после перезапуска сервера. Все последующие загрузки страниц отображают как ожидалось.
Что происходит здесь и как я могу это исправить?
Спасибо.
Два вопроса: 1. «заполнять» [не является рекурсивным] (https://github.com/LearnBoost/mongoose/issues/601). В вашем примере вы заполняете 'user.training'. Вы также заполнили 'user.training.details'? 2. Вы уверены, что заполнение заполнено перед рендерингом? Почему бы не сделать рендеринг в обратном вызове из 'populate', а не обратный вызов из' findById'? – Nate
Вы абсолютно правы. Я был неаккуратен в своей транскрипции. он должен читать '.populate ('training.details')'. Я отредактировал свой вопрос, чтобы отразить это. – smabbott