Dans cet exemple très simple: 1.) Quel type d'information puis-je obtenir du client? Comme le navigateur, la résolution de l'écran, etc. p> 2.) Comment puis-je envoyer des informations du client au serveur, comme paramètre? p> Merci! P> P>
3 Réponses :
Avez-vous lu le API Docs ? L'objet Req est un objet http.Serverrequest comme documenté là-bas. Il 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 de là, vous pourrez peut-être récupérer plus d'informations en utilisant un autre service. P>
N'oubliez pas que nœud.js est une application autonome - elle ne fonctionne pas dans un navigateur - c'est une application Server HTTP qui fonctionne dans un interprète JS. P>
Vous ne pouvez pas obtenir les informations de résolution de l'écran, mais vous pouvez obtenir l'agent utilisateur de la demande de demande "utilisateur-agent" p>
Quel est le code nécessaire pour cela? J'ai essayé Req.Getheader ('utilisateur-agent') mais je ne pense pas que cela fonctionne.
@zzaman essayez req.headers ['utilisateur-agent'] - Tous les en-têtes du nœud sont minuscules .
1) URL de référent, adresse IP, agent utilisateur, taille de l'écran et autre Statistiques . Vous pouvez également obtenir la localisation géographique mais c'est plus impliqué.
2) Certaines données sont disponibles dans les en-têtes de sorte que celles-ci sont envoyées sur chaque demande - d'autres données telles que la taille de l'écran sont un peu plus difficiles afin que vous souhaitiez faire une Demande Ajax d'envoyer cela. P>
// Somewhere on your page(s) - here we use jQuery $(document).ready(function(){ // Check if they have been logged if ($.cookie('logged') == null ){ // Send screen size and whatever else that is not available from headers $.post('/logger', { width: screen.width, height: screen.height }, function(res) { // Set cookie for 30 days so we don't keep doing this $.cookie('logged', true, { expires: 30 }); }); } }); // Server side - example is an Express controller exports.logger = function(req, res) { var user = { agent: req.header('user-agent'(, // User Agent we get from headers referrer: req.header('referrer'), // Likewise for referrer ip: req.header('x-forwarded-for') || req.connection.remoteAddress, // Get IP - allow for proxy screen: { // Get screen info that we passed in url post data width: req.param('width'), height: req.param('height') } }; // Store the user in your database // User.create(user)... res.end(); }
Pour référrer code>, navigateurs Envoyer
Référence < / Code> Avec un seul R. Express ne traduit pas cela à l'orthographe appropriée, les besoins supérieurs à
Req.Headers ["référencier"] code>.
@Arjan ils sont interchangeables. Express peut gérer l'éther un. Github.com/expressjs/express/blob/Master/LIB/ Demande.js # L76
C'est bizarre, comme je l'ai testé avant de poster ce commentaire (et j'ai même ajouté un commentaire dans mon code expliquant Express ne traduisant pas ...). Va vérifier à nouveau demain, mais votre lien ne ment pas ... :-)
Ah, dans votre commentaire, vous vous référez à la fonction (Nice) Helper fonction en-tête ("référent") code> (qui est un alias pour
req.get (" référent ") code>
qui gère effectivement les deux référenant code> et
et
et
et
référent code>. Toutefois, dans votre réponse, vous accédez à la propriété de la demande
en-têtes code> directement,
req.headers ["référent"] code>, qui donne un index non défini code>. ;-)
En effet! Merci d'avoir attrapé ça. J'ai mis à jour la réponse pour utiliser la fonction d'assistance.