@BarneyGumble

Как передать в шаблон данные, полученные через Mongoose?

Добрый день. Если получаю данные из базы и вывожу их на страницу вот таким образом, то всё выводится нормально:

var selectedUser = User.findOne({'_id': '5991bf82b9a87a624407907e'}, (err, user) => {
    console.log('result', err, user);
    res.render("userpage.hbs", {
        username: user.username 
    });
});

Но как быть, если мне нужно вынести данные за пределы функции возврата? Потому, что такой код уже не работает, а мне нужно вывести данные именно так:

var selectedUser = User.findOne({'_id': '5991bf82b9a87a624407907e'}, (err, user) => {
    console.log('result', err, user);
});

res.render("userpage.hbs", {
    username: user.username
});
  • Вопрос задан
  • 236 просмотров
Решения вопроса 1
Krasnodar_etc
@Krasnodar_etc
fundraiseup
var selectedUser = User.findOne({'_id': '5991bf82b9a87a624407907e'}, (err, user) => {
    console.log('result', err, user);
    someFunction(user);
});

function someFunction (user) {
    res.render("userpage.hbs", {
        username: user.username
    });
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Stashevich
программист
Переманная 'user' находиться в другой области видимости, поэтому второй вариант в данном виде не заработает.
Самый простой фикс - создать переменную, глобальную по отношению к этим двум вызовам функций и записать в неё все что вам нужно. А затем считать значение в функции render
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы