J'utilise express.js et j'ai besoin de connaître le domaine à l'origine de l'appel. C'est le code simple
app.get(
'/verify_license_key.json',
function( req, res ) {
// do something
Comment puis-je obtenir le domaine à partir de l'objet req
ou res
? J'ai essayé de faire un fichier console.dir de req
et res
mais je n'en ai aucune idée, lisez également la documentation mais cela ne m'a pas aidé.
Vous devez le récupérer à partir du Host
header .
var Host = req.get('Host');
Il est facultatif avec HTTP 1.0, mais requis par 1.1. Et, l'application peut toujours imposer une exigence qui lui est propre.
S'il s'agit de la prise en charge de demandes croisées , vous utiliserez plutôt l'en-tête Origin
.
var Origin = req.get('Origin');
Notez que certaines demandes croisées doivent être validées via une requête "preflight" :
req.options('/route', function (req, res) {
var Origin = req.get('Origin');
// ...
});
Si vous recherchez l'adresse IP du client, vous pouvez la récupérer avec:
var userIP = req.socket.remoteAddress;
Notez que si votre serveur est derrière un proxy, cela vous donnera probablement l'adresse IP du proxy. Que vous puissiez ou non obtenir l'adresse IP de l'utilisateur dépend des informations transmises par le proxy. Mais, ce sera généralement aussi dans les en-têtes.
Au lieu de:
var Host = req.get('Host');
var Origin = req.get('Origin');
vous pouvez aussi utiliser:
var Host = req.headers.Host;
var Origin = req.headers.Origin;
Dans Express 4.x, vous devriez utiliser req.hostname
, qui renvoie le nom de domaine, sans port. c'est à dire.:
// Host: "example.com:3000"
req.hostname
// => "example.com"