Express 中的压缩中间件顺序

3 node.js express

Express API 文档说app.use()

中间件函数是按顺序执行的,因此中间件包含的顺序很重要。

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

import compression from 'compression';
import api from './api';
// some code 
app.use(compression() );
// some more code 
app.use(api);
Run Code Online (Sandbox Code Playgroud)

api进行呼叫的路由器在哪里res.send()

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

Gab*_*leu 5

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

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