并行运行Expresse中间件

时间:2015-03-12 22:34:46

标签: node.js asynchronous express

当某个中间件需要参数时,如何并行运行我的中间件?我正在阅读this article,他们在那里打电话如下:

app.use(getUser);

但我有如下呼叫:

app.use(require('./middleware/settings')(config));

同样最好使用这种方法,因为我在我的app.js中初始化并触发了许多中间件,如下所示:

app.use(require("connect-assets")({
  paths:    [config.app.assets_dir + '/css',
             config.app.assets_dir + '/js',
             config.app.assets_dir + '/images',
             config.app.assets_dir + '/fonts',
             config.app.assets_dir + '/bower_components'
            ],
  buildDir: config.app.min_dir,
  gzip:     true
}));

我应该将它用于部分或全部吗?

1 个答案:

答案 0 :(得分:2)

您链接到的文章中的技术并不直接适用于您的情况。他们谈论的是单个请求,需要多个独立的I / O位,并从串行进程重构为并行进程。对于资产管道,情况不同,该技术不直接适用。再加上第三方模块,您无法控制任何IO连接资产在构建资产时所做的事情,但这一切都只发生一次。只需考虑使用他们的precompile选项,您就可以了。

对于普通的第三方中间件,如资产管理器,静态服务器等,事情已经是" parallel"因为快递服务器可以立即响应许多请求。当您的自定义业务逻辑具有不需要串行执行的IO任务时,async.parallel技术更适合。