#javascript #node.js #mongodb #sails.js #sails-mongo
#javascript #node.js #mongodb #sails.js #паруса-монго
Вопрос:
Я новичок в node js. Я использую sails js в качестве фреймворка. Я пытаюсь использовать вложенный запрос к базе данных. Пожалуйста, проверьте добавленный код.
Мое текущее имя коллекции mongo — todostatus. Из нее я извлек данные. Затем я попытался использовать функцию обратного вызова для итерации данных и обновления каждого элемента внутри данных из базы данных. Но я не получаю все данные. Может кто-нибудь, пожалуйста, дать мне подсказку?
Заранее спасибо,
Nixon
TodoStatus.find({todo_id : req.params.todo_id}).done(function(errs, responsible){
if(errs){
}
else{
function grabUsersName(todoRes, callback){
async.forEach(todoRes, function (item, callback2){
User.findOne ({id : item.user_id}).done(function (errses, user) {
if(errses)
{
console.log(errses);
}
else
{
item['name'] = user.name;
}
});
}, function(eerr) {
callback(todoRes);
});
}
grabUsersName(responsible, function(resultsa){
console.log(resultsa);
return res.view({
responsible: resultsa
})
})
}
})
Ответ №1:
Я нашел решение.
Проблема заключается в функции grabUserName(). Я пропустил использование обратного вызова для async.forEach. Проверьте код функций для получения дополнительной информации
function grabUsersName(todoRes, callback){
async.forEach(todoRes, function (item, callback2){
User.findOne ({id : item.user_id}).done(function (errses, user) {
if(errses){
console.log(errses);
}
else{
item['name'] = user.name;
callback2();
}
})
}, function(eerr) {
callback(todoRes);
});
}