我有定义为参考其它document
的ObjectId
阵列称为Storage
一个document
Users
与storage
属性。我试图让一个特定的用户,然后返回数组内的存储信息。猫鼬findOne内部环路
这是我的代码:
module.exports.storageDetail = function(req, res) {
User.findOne({'userId': req.user.userId}, 'storages').then(function(data){
var storageArray = [];
data.storages.forEach(function(record){
Storage.findOne({_id: record}, function(err, storage){
storageArray.push(storage);
});
});
return Promise.all(storageArray);
}).then(function(storageList){
res.render('storage_template', {
storage: storageList
});
console.log(storageList);
});
}
但执行后,storageList
是一个空数组。
我是node.js的新手,请让我知道是否需要提供更多信息。
这两种解决方案是伟大的工作!你能不能告诉我如何使用ES5的第一个? – Valip
@Valip我用普通函数替换了胖箭头语法。这里的要点是'.exec()'来获得Promise。 –