node.js - 分组和管理 node.js 中间件

标签 node.js express connect middleware

如果我制作了一些协同工作的中间件,那么分组和管理功能的最佳约定是什么?

在我的 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 函数只是通过前面提到的每个中间件函数传递 reqres 对象

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/

相关文章:

javascript - 如何将backbone.js 与websockets/socket-io/nowjs 一起使用

arrays - 如何读取从nodejs中的req.session加载的数组的长度?

javascript - 将标志从 Node/Express 应用程序传递给 Python 脚本

ios - 如何将未发布的 iOS 应用程序移至另一个同名帐户?

node.js - 如何访问 express 的 uploadDir 属性?

javascript - Sendgrid 入站 webhook 与 Node 和 multer

eclipse - 开发 Node.js 应用程序时 Eclipse 中的“类型推断错误”

node.js - 内部 500 错误 - Node.js - express-session

apache - 如何在 node-http-proxy 旁边使用虚拟主机?

python - 从C向Python程序发送字符串