在express中压缩中间件的顺序

快递API文档为app.use()说:

中间件function是按顺序执行的,因此中间件包含的顺序非常重要。

然后,我看到这样的代码:

 import compression from 'compression'; import api from './api'; // some code app.use(compression() ); // some more code app.use(api); 

其中apires.send()调用的路由器。

正如我所看到的,压缩中间件是在发送respose之前注册的。 那么它如何压缩响应呢? 在res.send()调用之后是否有某种挂钩来注册callback?

压缩中间件是按顺序执行的,但它重载了res.write res.onres.end函数。 所以当api稍后调用的时候,就会运行压缩代码。

ref: https : //github.com/expressjs/compression/blob/93586e75a0a1c5bbfd353c4cec1cfcee2e52adde/index.js#L78