Nodejs保留请求头的大写

我使用节点js作为反向代理,大多使用http和http-proxy模块。 在发送请求到nodejsredirect到我的应用程序之一,我必须传递请求标题,这将全部是大写的。 但是,nodejs或者http正在将所有大写字母转换为小写字母,因为我的应用程序的validation失败。

我的代码片段是:

http.createServer(function (request, response) { var redirection = 'http://localhost:8000'; var path = url.parse(request.url).path; switch (path) { case '/health': proxy.web(request, response, { target: redirection }); break; }).listen(8080); 

传递的请求标头是:

 curl -H "X-AUTH: PBxqcEm5sU743Cpk" -X GET http://localhost:8080/health 

现在发生的事情是,标题“X-AUTH”正在变成“x-auth”,我的应用程序无法validation它。 在我的应用程序中,标题匹配区分大小写。

从节点js请求对象打印的请求标题是:

 { host: 'localhost:8080', 'user-agent': 'curl/7.47.1', accept: '*/*', 'x-auth': 'PBxqcEm5sU743Cpk' } 

我的要求是保留在请求中传递头的大写,以便我的应用程序可以validation和授权它。 请让我知道,如果有什么办法可以做到这一点

非常感谢

FWIW HTTP标头字段名称不区分大小写,所以这种情况确实不重要。

但是,节点通过req.rawHeaders提供对原始头文件(包括重复文件)的req.rawHeaders 。 由于req.rawHeaders是一个数组(格式是[name1, value1, name2, value2, ...] ),您需要遍历它才能find您正在查找的标题。