335

我想获取使用 Node JS 的连接库包发出的请求的“主机”标头。我的代码如下所示:

var app = connect()
  .use(connect.logger('dev'))
  .use(connect.static('public'))
  .use(function(req, res){

    var host = req.???

  })
 .listen(3000);

连接的文档在这里,但我没有看到任何详细说明req上述代码中对象的 API 的内容。http://www.senchalabs.org/connect/

编辑:注意一个成功的答案必须指向文档(我需要这个来验证哪个版本提供了我正在寻找的 API)。

4

6 回答 6

398

如果您使用 Express 4.x,则可以使用Express 4.x API 参考req.get(headerName)中描述的方法

于 2015-05-18T11:36:59.127 回答
274

要查看 HTTP 请求标头列表,您可以使用:

console.log(JSON.stringify(req.headers));

返回 JSON 格式的列表。

{
"host":"localhost:8081",
"connection":"keep-alive",
"cache-control":"max-age=0",
"accept":"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"upgrade-insecure-requests":"1",
"user-agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.107 Safari/537.36",
"accept-encoding":"gzip, deflate, sdch",
"accept-language":"en-US,en;q=0.8,et;q=0.6"
}
于 2015-07-29T11:09:48.417 回答
154

检查console.log(req)或的输出console.log(req.headers);

于 2012-10-30T21:24:46.980 回答
73
var host = req.headers['host']; 

标头存储在 JavaScript 对象中,标头字符串作为对象键。

同样,用户代理标头可以通过

var userAgent = req.headers['user-agent']; 
于 2014-07-02T16:18:38.800 回答
3
logger.info({headers:req.headers})

输出;

 "headers":{"authorization":"Basic bmluYWQ6bmluYWQ=","content-
type":"application/json","user-
agent":"PostmanRuntime/7.26.8","accept":"*/*","postman-token":"36e0d84a-
55be-4661-bb1e-1f04d9499574","host":"localhost:9012","accept-
encoding":"gzip, deflate, br","connection":"keep-alive","content-
length":"198"}
于 2021-04-27T08:29:44.517 回答
0

在 express 中,我们可以使用 request.headers['header-name'],例如如果你在授权头中设置了一个 Bearer 令牌,并且想要检索令牌,那么你应该写 req.headers['authorization'],您将获得包含“Bearer tokenString”的字符串。

于 2021-09-16T15:03:55.833 回答