访问自定义请求头节点Express

16

我正在使用Express构建Web API,但没有找到有关访问传入的自定义请求标头的信息。

例如,我期望传入的POST请求具有provider_identifier标头。 当我收到请求时,我需要访问该标头信息以验证其订阅。

有人能指点我正确的方向/提供有关此问题的建议吗?

router.post('myendpoint/', function(req, res){
    var providerId = req.????;
});

你是如何在客户端设置自定义头的?我对此感到困惑。 - SoJS
1个回答

21
回答自己的问题...对我来说有点傻。
使用上面的例子,只需像这样引用标题集合:
var providerId = req.headers.provider_identifier;

一个提示:使用下划线而不是破折号。"provider-identifier" 不能运行,但 "provider_identifier" 可以。


11
如果您有一个名为 provider-identifier 的标头,您应该能够通过 req.headers['provider-identifier'] 访问它(除非Express将破折号更改为下划线)。 - Joost Vunderink
是的...我刚刚想到了。谢谢! - KickinMhl
有时候 req.headers['provider-identifier'] 会变成 undefined,可能是什么问题呢?有时候它会正常显示 :( - Nishant Kumar Verma
1
即使我硬编码了自定义请求头,仍然会得到未定义的结果。可能出了什么问题? - user1955934
7
我知道这里的话题有点老,但我刚刚注意到在最新版本的 Express 中,它会自动将大写的自定义属性转换为小写。对于任何看到这篇文章的人。 - Mick Feller

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