所以我看过TJ 的创建模块化 Express-apps 的指南,效果很好,但想了解更多关于它如何工作的细节,但是搜索没有给我答案。
简而言之,我想知道: 在 Express 中安装应用程序时,应用程序的哪些部分是共享的,哪些部分不是?
一些例子来澄清我的问题:
应用程序.js:
app.use(express.bodyParser());
app.use(loginApi); //loginApi is an express app
app.listen(3000);
这个例子有效。但是,如果我放置app.use(loginApi)
before app.use(express.bodyParser());
,主体解析器将在 loginApi 子应用中不可用。这是为什么?
另一个例子:
子模块.js
var app = module.exports = require('express')();
app.all('*', function(req, res, next){
console.log('nifty middleware');
next();
});
应用程序.js
app.get('/funtimes', fn);
app.use(submodule);
app.listen(3000);
现在在这个例子中,如果我理解正确的话,/funtimes
路由不会受到所有路由的子模块中间件的影响。但是 app.js 的其余路由呢?他们会受到影响吗?如果我添加另一个模块,它会受到影响吗?