2

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

像这样的东西似乎有效:

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

问题是请求是一个实例http.IncomingMessage,并且 headers 属性被记录为只读

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

4

1 回答 1

5

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

function authorize(req, res, next) {
  // ...
  req.data = req.data || { };
  req.data.remoteUser = user;
  next();
}
于 2013-07-08T10:33:10.267 回答