web-dev-qa-db-fra.com

Comment extraire les en-têtes http d'une requête à l'aide de NodeJS connect

J'aimerais obtenir l'en-tête "Host" d'une requête utilisant le bundle de bibliothèques de connexion de Node JS. Mon code ressemble à: 

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

    var Host = req.???

  })
 .listen(3000);

La documentation de connect est ici mais je ne vois rien qui détaille l'API de l'objet req dans le code ci-dessus. http://www.senchalabs.org/connect/

Edit: Notez qu'une réponse réussie doit pointer vers la documentation (j'ai besoin de cela pour vérifier quelle version a fourni l'API que je cherche).

203
Alex Spurling

Si vous utilisez Express 4.x, vous pouvez utiliser la méthode req.get(headerName) comme décrit dans Référence de l'API Express 4.x

271
Sami

Vérifier la sortie de console.log(req) ou console.log(req.headers);

128
Anatoliy

Pour voir une liste des en-têtes de requête HTTP, vous pouvez utiliser:

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

pour renvoyer une liste au format 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"
}
123
user2775422
var Host = req.headers['Host']; 

Les en-têtes sont stockés dans un objet JavaScript, avec les chaînes d'en-tête sous forme de clés d'objet. 

De même, l’en-tête user-agent pourrait être obtenu avec 

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

juste utiliser sur le front-end: 

axios.get(url, {headers : {Authorization:Bearer $ {token} } }).then(....

et à l'arrière: 

: i ajouté OPTIONS et autorisation à res.setHeader () dans le noeud express express

res.setHeader('Access-Control-Allow-Headers', 'Access-Control-Allow-Headers, Origin,OPTIONS,Accept,Authorization, X-Requested-With, Content-Type, Access-Control-Request-Method, Access- Control-Request-Headers');

cela a vraiment résolu mon problème, espérons que vous le ferez.

0
MESDOUR