当某个中间件需要参数时,如何并行运行我的中间件?我正在阅读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
}));
我应该将它用于部分或全部吗?
答案 0 :(得分:2)
您链接到的文章中的技术并不直接适用于您的情况。他们谈论的是单个请求,需要多个独立的I / O位,并从串行进程重构为并行进程。对于资产管道,情况不同,该技术不直接适用。再加上第三方模块,您无法控制任何IO连接资产在构建资产时所做的事情,但这一切都只发生一次。只需考虑使用他们的precompile
选项,您就可以了。
对于普通的第三方中间件,如资产管理器,静态服务器等,事情已经是" parallel"因为快递服务器可以立即响应许多请求。当您的自定义业务逻辑具有不需要串行执行的IO任务时,async.parallel技术更适合。