Как извлечь заголовки запросов HTTP из запроса с помощью NodeJS connect

Я хотел бы получить заголовок "Host" запроса, сделанного с помощью пакета Node JS connect library. Мой код выглядит так:

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

    var host = req.???

  })
 .listen(3000);

Документация для подключения находится здесь, но я не вижу ничего подробного описания API объекта req в приведенном выше коде. http://www.senchalabs.org/connect/

Изменить. Обратите внимание, что успешный ответ должен указывать на документацию (мне нужно это, чтобы проверить, какая версия предоставила API, который я ищу).

Ответ 2

Проверьте вывод console.log(req) или console.log(req.headers);

Ответ 3

чтобы узнать, что вы можете использовать в заголовке запроса:

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

и он вернет вам что-то вроде этого:

{
"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"
}

Ответ 4

var host = req.headers['host']; 

Заголовки хранятся в объекте JavaScript, а строки заголовков - как ключи объектов.

Аналогично, заголовок user-agent может быть получен с помощью

var userAgent = req.headers['user-agent']; 

Ответ 5

У меня есть простое решение из знаменитой книги Орейли; Веб-разработка с Node и Express: использование стека JavaScript в заголовке запроса. Маршрут макет, и вы можете использовать свой собственный маршрут приложения, но принцип тот же.

app.get('/mockREQHeaderReader', function(req, res){
 res.set('Content-Type', 'text/plain');
 var s = "";
 for (var name in req.header) s += name + ': ' + req.header[name] + '\n';
 req.send(s);
});