2
背景:一個Market
集合有一個url
屬性存儲的URL選自sites
從Site
集合數組。我創建了一個幫助器(代碼如下),我可以從/routes/markets.js
調用該幫助器,它基本上選擇基於req.params.url
的Market
,然後遍歷market.sites
數組並找到相應的Site
,將它們存儲到我可以在呈現視圖時使用的數組中。不能推到一個數組從貓鼬則聲明
問題:調用磁盤陣列上的push
功能實際上並沒有任何推動,在過去console.log
聲明我只需登錄[]
問題:我怎麼能推到這個數組?這是for of
循環和then
Promise
呼叫問題嗎?
市場helpers.js
exports.listSites = (req, res, errorRender, successRender) => {
let sites = [];
Market.find({url: req.params.url})
.then((market) => {
for (url of market[0].sites)
Site.find({url}).then((site) => {
sites.push(site[0]);
}).catch((err) => console.log(err));
console.log(sites);
res.render(successRender, {sites});
})
.catch((errors) => {
res.render(errorRender, {errors});
});
};
路由/ markets.js
router.get('/:url', (req, res) => {
Markets.listSites(req, res, 'login-markets', 'markets/index');
});
這完美地工作!謝謝! – szier
歡迎您:) – cubbuk