node.js - 如何向传入的 HTTP 请求添加 header ?

标签 node.js

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

这样的东西似乎有效:

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

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

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

最佳答案

如果您需要将一些内部信息传递给下一个中间件,只需使用对象而不是实际的 header 。
修改 header 不是一个好的做法,因为其他模块可以依赖于此,这会让它们变得困惑。

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

关于node.js - 如何向传入的 HTTP 请求添加 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17524273/

相关文章:

javascript - 使用箭头函数的 forEach sum 在 Firebase 实时数据库中给出了意外的结果

node.js - Polyfills 和 package.json 可选依赖项

node.js - HTTP 发送后请求失败

node.js - 更新 Firestore 文档需要超过 3 分钟

node.js - Azure 函数和 Node.js

java - zeromq 与 Python 与 Java 的 node.js 性能

javascript - 使用带有数字问题的正则表达式拆分字符串

node.js - 如何更新 sencha cordova 版本

javascript - 在 node.js 中使用带有 async/await 的文件系统

node.js - 将异步等待查询包装在 try catch 中