如何为传入的HTTP请求添加标头?

时间:2013-07-08 10:23:11

标签: node.js connect

我正在为node.js开发一个Connect中间件,需要为传入请求添加HTTP标头。

这样的事似乎有效:

function authorize_request(req, res, next) {
  //...
  req.headers['remote-user'] =  user;
  next();
}

问题是请求是http.IncomingMessage的实例,headers属性是documented to be read only

这是一种为请求添加标头的允许方式,还是在某些情况下会失败?有没有更好的办法?

1 个答案:

答案 0 :(得分:5)

如果您需要将一些内部信息传递给下一个中间件,只需使用对象而不是实际的标头 修改标题并不是一个好习惯,因为其他模块可以依赖它,而且会搞砸它们。

function authorize(req, res, next) {
  // ...
  req.data = req.data || { };
  req.data.remoteUser = user;
  next();
}