思考正确的方法,如何在 node.js Web 项目中使用中间件,使用目前正在成长的 express 和 connect。
当然,现在有中间件必须在全球范围内传递或扩展请求,但在很多情况下,有一些特殊的工作,比如准备传入数据,在这种情况下,中间件只能用于一组 http 方法和路由。
我有一个基于组件的架构,每个组件都有自己的中间件层,可以实现该组件可以处理的请求。在应用程序启动时,任何必需的组件都会被加载并准备好。将中间件代码执行绑定到 URL 以降低 CPU 负载是一个好主意,还是仅将中间件用于全局目的更好?
这是一些与 url 相关的中间件的外观。
app.use(function(req, res, next) {
// Check if requested route is a part of the current component
// or if the middleware should be passed on any request
if (APP.controller.groups.Component.isExpectedRoute(req) ||
APP.controller.groups.Component.getConfig().MIDDLEWARE_PASS_ALL === true) {
// Execute the midleware code here
console.log('This is a route which should be afected by middleware');
...
next();
}else{
next();
}
});