中间件统一配置全局响应头
时间: 2023-10-24 16:09:29 浏览: 40
在很多 web 应用中,我们需要在每个 http 响应头中添加一些通用的信息,例如跨域访问控制、缓存控制、XSS 保护等等。为了避免在每个路由处理函数中都写上这些代码,我们可以使用中间件来实现全局设置响应头。
具体来说,我们可以在 Express.js 中使用中间件函数 `app.use()` 来添加一个处理器函数,该处理器函数会在每个请求到达服务器时都会被调用。在该处理器函数中,我们可以设置响应头中的各个字段。例如:
```javascript
app.use(function(req, res, next) {
// 设置跨域访问控制
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Content-Type, Authorization");
res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
// 设置缓存控制
res.header("Cache-Control", "no-cache, no-store, must-revalidate");
res.header("Pragma", "no-cache");
res.header("Expires", 0);
// 设置 XSS 保护
res.header("X-XSS-Protection", "1; mode=block");
next();
});
```
这样,每个请求到达服务器时,都会自动添加这些通用的响应头。注意,这个处理器函数必须放在所有路由处理函数之前,这样才能确保所有响应都会被处理。