当某个中间件接受参数时,如何并行运行我的中间件?我读到了这篇文章,在那里,他们接到了如下的电话:
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
}));我应该用它做一些还是全部?
发布于 2015-03-12 22:55:17
您所链接的文章中的技术并不真正适用于您的情况。他们谈论的是一个请求,它需要多个独立的I/O位,并从一个串行进程重构到一个并行进程。对于资产管道来说,情况是不同的,这种技术不直接应用。另外,对于第三方模块,您无法控制任何IO连接--资产在构建资产时正在执行,但所有这些都只发生过一次。只要考虑使用他们的precompile选项,你就会没事的。
对于资产管理器、静态服务器等常见的第三方中间件来说,事情已经是“并行的”,因为快速服务器可以同时响应许多请求。当您的自定义业务逻辑具有不需要串行执行的IO任务时,async.parallel技术更适合。
https://stackoverflow.com/questions/29021578
复制相似问题