如何从express的req对象中删除标题?

5

我正在尝试找出如何从express的req对象中删除标头。我相信这个res.disable("Header Name")可以从res对象中删除它,但是对于req.headers不起作用。


你为什么想要编辑req对象?它代表客户端发出的请求。 - Josef Hoppe
2
您可以像删除普通 JavaScript 对象的任何其他属性一样将其删除,但这不会对实际请求产生影响。只有在请求路径中尚未到达的中间件才无法看到这些标头。 - tbking
2个回答

10
那可能只需要添加这个中间件即可:
app.use(function(req, res, next) {
  delete req.headers['header-name']; // should be lowercase
  next();
});

0
你可以从你的请求对象中简单地删除头信息,就像我下面所做的一样:

只需使用delete命令即可。-

console.log(req.headers)

// { host: 'localhost:8081',
//   connection: 'keep-alive',
//   auth_token: 'c79d2f80029c1a1382b2e831643e5447b902a6f9',
//   'user-agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.100 Safari/537.36',
//   'postman-token': 'b2cef620-f85d-556c-acc1-8337da2d5e81',
//   'cache-control': 'no-cache',
//   api_key: 'FB499A4FF77901AFCD2278457658B7F7B17EAC112B489DAA304D3F2A059DFCC4',
//   'content-type': 'application/json',
//   accept: '*/*',
//   dnt: '1',
//   'accept-encoding': 'gzip, deflate, sdch, br',
//   'accept-language': 'en-US,en;q=0.8' }

// Now Delete the headers from your request object.

delete req.headers;

console.log(req.headers) // undefined

如果您想从标题中删除任何键,则使用以下代码:
delete req.headers['auth_token'];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接