我有定義爲參考其它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。 –