【发布时间】:2020-04-02 21:23:33
【问题描述】:
对于我的应用程序,我们有来自同一个应用程序的 rest API 和 webapp 服务器。 (小到不能单独部署)
有什么方法可以排除所有/api/* 路由路径以禁用缓存和cookie?
注意:我不能使用app.disable('etag'),因为它会禁用整个 web 应用程序。
【问题讨论】:
标签: node.js express session-cookies http-caching
对于我的应用程序,我们有来自同一个应用程序的 rest API 和 webapp 服务器。 (小到不能单独部署)
有什么方法可以排除所有/api/* 路由路径以禁用缓存和cookie?
注意:我不能使用app.disable('etag'),因为它会禁用整个 web 应用程序。
【问题讨论】:
标签: node.js express session-cookies http-caching
Afaik 这目前是不可能的 - github 上也有一些未解决的问题,例如:https://github.com/expressjs/express/issues/2472
作为一种解决方法,您可以使用以下方式删除 /api-route 上的请求标头:
const onHeaders = require('on-headers')
// mount custom middleware for all api-requests
app.use("/api*", (req, res, next) => {
removeHeaders(res);
next();
});
function removeHeaders(res) {
onHeaders(res, () => {
res.removeHeader('ETag');
// remove other headers ...
});
}
【讨论】: