Comment obtenir des informations sur le client dans node.js
dans cet exemple très simple:
var sys = require("sys"),
http = require("http");
http.createServer(function(request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("Hello World!");
}).listen(8080);
sys.puts("Server running at http://localhost:8080/");
1.) Quelles informations puis-je obtenir de la part du client? comme navigateur, résolution de l'écran, etc?
2.) Comment puis-je envoyer des informations depuis le serveur vers le client, comme paramètre?
merci!
OriginalL'auteur oscarm | 2010-10-09
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas obtenir la résolution de l'écran de l'information, mais vous pouvez obtenir de l'agent de l'utilisateur à partir d'en-Tête de Requête "User-Agent"
essayez req.les en-têtes['user-agent'] - tous les en-têtes de nœud sont en minuscules.
OriginalL'auteur leeight
1) Referrer URL, l'adresse IP de l'Agent Utilisateur, la taille de l'écran et d'autres statistiques.
Vous pouvez également obtenir de géo-localisation, mais qui est plus impliqué.
2) Certaines données sont disponibles dans les en-têtes de sorte que ces sont envoyés à chaque requête - d'autres données telles que la taille de l'écran est un peu plus délicat de sorte que vous aurez envie de faire une requête ajax pour envoyer le long de.
referrer
, les navigateurs envoyerreferer
avec un seul R. Express ne traduit pas que de la bonne orthographe, pour les besoins ci-dessusreq.headers['referer']
.ils sont interchangeables. Express peut supporter un éther. github.com/expressjs/express/blob/master/lib/request.js#L76
C'est bizarre, que j'ai testé avant de poster ce commentaire (et même ajouté un commentaire dans mon code expliquant Express ne traduit pas...). Va vérifier à nouveau demain, mais votre lien ne ment pas... 🙂
Ah, dans votre commentaire vous faites allusion à l' (nice) fonction d'assistance
header('referrer')
(qui est un alias pourreq.get('referrer')
qui, en effet, gère à la foisreferer
etreferrer
. Cependant, dans votre réponse, vous êtes accédant à la propriété requestheaders
directement,req.headers['referrer']
, ce qui donneundefined
. 😉En effet! Merci pour la capture. J'ai mis à jour une réponse à utiliser la fonction d'assistance.
OriginalL'auteur cyberwombat
Avez-vous lu le Les docs de l'API? Le req objet est un http.ServerRequest objet tel que documenté. C'est HTTP, et de telles choses, comme la résolution ne font pas partie du protocole. Ce que vous pouvez obtenir est un agent utilisateur, et à partir de là, vous pourriez être en mesure de récupérer plus d'informations à l'aide d'un autre service.
Rappelez-vous que node.js est une application autonome - c'est de ne pas s'exécutant dans un navigateur, c'est un Serveur HTTP de l'application qui s'exécute dans un JS interprète.
Merci à jour.
OriginalL'auteur NG.