所以我見過TJ's guide to creating modular Express-apps,效果很好,但想知道更多關於它是如何工作的細節,但搜索沒有給出答案。在Express中如何安裝應用程序
總之我想知道:在Express中安裝應用程序時,應用程序的哪些部分是共享的,哪些部分不是?
一些例子,以澄清我的問題:
app.js:
app.use(express.bodyParser());
app.use(loginApi); //loginApi is an express app
app.listen(3000);
此示例適用。但是,如果我在app.use(express.bodyParser());
之前放置app.use(loginApi)
,bodyArea解析器將不會在loginApi子應用程序中可用。這是爲什麼?
又如:
submodule.js
var app = module.exports = require('express')();
app.all('*', function(req, res, next){
console.log('nifty middleware');
next();
});
app.js
app.get('/funtimes', fn);
app.use(submodule);
app.listen(3000);
現在,在這個例子中,如果我理解正確的話,該/funtimes
路線不會受到影響所有路由的子模塊中間件。但是app.js的其他路線呢?他們會受到影響嗎?而如果我添加另一個模塊,會受到影響嗎?
之前順便說一句,你甚至不需要一個數組,你可以通過多種處理函數'應用。 get('whatever',fn1,fn2,fn3)' – Plato
這不完全正確。您可以使用app.use()在相對目錄中「掛載」子應用程序。例如,'app.use('/ products',productService')將會爲所有匹配'/ products'的路徑使用'productService'中間件/應用程序,這些路徑不會被早期的路線所捕獲。 –