如果我制作了一些协同工作的中间件,那么分组和管理功能的最佳约定是什么?
在我的 server.js
文件中,我目前只是通过 app.use
调用将它们一个接一个地列出。
然而,我突然想到,如果我的集合中的第一个没有产生任何数据,则该组中的后续数据可以跳过。我想这最终是一个聚合,尽管我在其他项目中没有看到任何这样的例子。
最佳答案
connect中间件有一个很好的例子来解决这种问题。看看 bodyParser :
app.use(connect.bodyParser()); // use your own grouping here
相当于
app.use(connect.json());
app.use(connect.urlencoded());
app.use(connect.multipart());
在内部,bodyParser
函数只是通过前面提到的每个中间件函数传递 req
和 res
对象
exports = module.exports = function bodyParser(options){
var _urlencoded = urlencoded(options)
, _multipart = multipart(options)
, _json = json(options);
return function bodyParser(req, res, next) {
_json(req, res, function(err){
if (err) return next(err);
_urlencoded(req, res, function(err){
if (err) return next(err);
_multipart(req, res, next);
});
});
}
};
完整代码可以在 github repo 找到
关于node.js - 分组和管理 node.js 中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14318292/