node.js - Express:禁用特定路由的 header (Etag、set-cookie 等)

标签 node.js express session-cookies http-caching

对于我的应用程序,我们有来自同一应用程序的 REST API 和 Web 应用程序服务器。 (体积小,无需单独部署)

有什么方法可以排除所有 /api/* 路由路径以禁用缓存和 cookie?

注意:我无法执行 app.disable('etag') 操作,因为它会禁用整个 Web 应用程序。

最佳答案

据我所知,目前这是不可能的 - github 上也有一些 Unresolved 问题,例如:https://github.com/expressjs/express/issues/2472

作为解决方法,您可以使用以下内容删除 /api 路由上的请求 header :

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 ...
  });
}

关于node.js - Express:禁用特定路由的 header (Etag、set-cookie 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59254550/

相关文章:

javascript - Node/快速路由问题 - 调用不正确的路径

c# - 可以让 C# SSH 客户端与 NodeJS SSH 服务器通信吗?

javascript - 使用 REST API(JSON、XML、HTML...)在请求之间传递消息

javascript - 如何路由 HTML Node js Express js

javascript - 如何在javascript中将cookie更改为session

php - 每个 AJAX 请求中的 session ID 都会更改

javascript - 是否有任何内置函数,如在 javascript 中查找所有?

javascript - 如何使用 webpack 获取没有路径和扩展名的当前文件名?

node.js - 使用express和body-parser设置服务器

javascript - 使用 session Javascript 存储数据