IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NodeJS Discussion :

req.url ne contient que le path


Sujet :

NodeJS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 90
    Par défaut req.url ne contient que le path
    Bonjour,

    lorsque je fais un print de "req.url" je me rend compte que cette variable ne contient que le path.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    var http = require('http');
    var net = require('net');
    var url = require('url');
    var qs = require('querystring');
     
    // Create an HTTP tunneling proxy
    var proxy = http.createServer(function (req, res) {
     
      console.log('Voici req.url : ' + req.url);
      // qui me retourne : /mon/path
     
      var path = url.parse(req.url).pathname;
      var host = url.parse(req.url).hostname;
      var port = url.parse(req.url).port;
     
      console.log('path : ' +path + ' host ' + host);
    // qui me retourne : path : /trunk/checkSubdomain host undefined
      });
     
    // now that proxy is running
    proxy.listen(8998, '127.0.0.1');
    req.url n'est pas censé me donner l'URL complète ?

    Merci d'avance !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut

    Non, req.url n'est pas censé te donner l'URL complète : cf documentation sur request.url

    Pour avoir le host et le port, il te faut regarder dans request.headers.host qui retournera dans ton cas "127.0.0.1:8998".

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Heu...

    A quoi ça peut bien te servir de vouloir récupérer le host et le port ?
    A priori, tu les connais déjà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    proxy.listen(8998, '127.0.0.1');
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Invité
    Invité(e)
    Par défaut
    Je n'avais pas pensé à ce détail^^

    Mais je vais sauver les apparences en disant que ça servira pour l'ip le jour où il ouvrira son application au monde au lieu de se cantonner à sa boucle locale

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 90
    Par défaut
    Vous avez tout a fait raison.
    J'avais déjà le host et le port mais je reprenais un script existant qui tentait de récupérer le host + port de req.url.

    Avouez que ça n'est pas très intuitif : req.url qui contient tout sauf le host et le port.

    Merci a vous en tout cas.

  6. #6
    Invité
    Invité(e)
    Par défaut
    En fait, c'est assez logique si on considère que le module http veut coller au maximum à la norme HTTP.

    En regardant de près une requête HTTP, tu vois une structure qui match très bien avec les choix de Node.js dans leur module.

    Quand je lis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GET /forums/f23/webmasters-developpement-web/javascript/ HTTP/1.1
    Host: www.developpez.net
    je trouve assez logique d'avoir
    • request.url = "/forums/f23/webmasters-developpement-web/javascript/"
    • request.headers.host = "www.developpez.net"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/02/2006, 00h33
  2. Réponses: 5
    Dernier message: 02/02/2006, 23h31
  3. Réponses: 6
    Dernier message: 20/09/2005, 21h11
  4. [Eclipse 3.0.1] Image qui n'affiche que son path
    Par thehpman dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 16/03/2005, 11h28
  5. Réponses: 3
    Dernier message: 21/01/2004, 08h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo