1
在我的Node.js/Express應用程序中,我想加載一些路線以異步表示。準確地說,我想從MongoDB中檢索促銷代碼,並根據這些代碼創建動態路由。異步添加快遞路線
我現在有這樣的代碼:
var promotion = require('../models/promotion');
promotion.list(function(promotions) {
// Loop all promotions
_.each(promotions, function(promo) {
app.route(promo.get('path')).get(promotion.claim);
});
});
可惜,這是行不通的。經過一些調試後,我發現路由實際上被添加到路由列表中,但是因爲它們是異步加載的,所以它們被添加到最後添加的'catch all'路由之後。我發現通過檢查:
console.log( app._router.stack );
我讀過一些解決方案,包括所有在該功能附加包羅萬象的規則和處理路由路徑,但說實話這聽起來並不太大。我想繼續使用app.route()爲我的其他路線。
感謝您的回答!經過一番更多的搜索,恐怕你是對的:)。我擔心這種全面的路線可能會對性能造成不利影響,因爲我讀到了這個:http://stackoverflow.com/questions/15344628/best-way-to-do-dynamic-routing-with-express-js -node-JS。但是在我重新閱讀之後,我意識到這個例子中,anwswer對性能不利,因爲每次調用都會檢查數據庫。 – 2014-12-05 07:30:20