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 :

server express middleware


Sujet :

NodeJS

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2007
    Messages : 15
    Points : 17
    Points
    17
    Par défaut server express middleware
    Bonjour à tous, débutant avec node et express j'essaie de faire la liaison entre le server express et api symfony avec un front angular/cli, mon problème étant dans la façon de récupérer et envoyer les données entre express et symfony
    voilà mon code

    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
     
      app.route('/users/2').get(function(req, res){  //la route depuis angular/cli
        res.type('application/json');
        var data = ''; //je voudrais récupérer les données symfony là
       //interroger symfony
       http.get('http://monserversymfony', (resp) => {
          resp.on('data', (chunk) => {
                 data = chunk; //json ok depuis symfony
          });
         resp.on('end', () => {
             console.log(JSON.parse(data)); //ok dans la console
          });
     
    }).on("error", (err) => {
      console.log("Error: " + err.message);
    });
    console.log(data); //verif avant envoie vers angular/cli, rien dans la variable data
     
    });
    je voudrais savoir ce que je ne fais pas bien.

    Merci d'avance pour votre réponse

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    Comme vous certainement pré-sentiez que le console.log en dehors de l'événement "data" de resp va être éxécuté avant le temps où les données data sont récupérées. C'est la raison qu'il va rien montrer là. La seulement chose à savoir c'est comme faire pour que les données soient disponibles à l'étape-là de ce code.

    Je peux vous montrer comment en servant le module 'async' qui exite depuis un temps immémoriel pour l'échelle de tech node.js. Et il a pour ce moment du temps la mérite de rester toujours plus compatible et serviable pour les versions passées souvent restant nécessaires os-contraignant.

    Donc avec async installé (par quelque chose comme d'habitude : npm install async --save), on peut insérer un async.series() au bon endroit. Concrètement, ça peut être comme ça.
    Code node.js : 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
    22
    23
    24
    25
    26
    27
    28
    var asyn=require('async');
    //etc...
    app.route('/users/2')
        .get(function(req, res){
            res.type('application/json');
            var data = '';
            async.series([
                function(callback) {
                    http.get('http://monserversymfony', (resp) => {
                        resp.on('data', (chunk) => {
                            data = chunk;
                        });
                        resp.on('end', () => {
                            //console.log(JSON.parse(data));
                            console.log('(1) : '+data);
                            callback(null, data);
                        });
                        resp.on("error", (err) => {
                            console.log("Error: " + err.message);
                        });
                    });
                }],
                function(error, result) {
                    console.log('(2) : '+result);    //maintenant les données sont disponibles
                }
            );
            console.log('(3) : '+data);    //pas disponibles encore, trop tôt
        }):

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2007
    Messages : 15
    Points : 17
    Points
    17
    Par défaut
    Merci pour ton aide, je vais tester de cette façon

Discussions similaires

  1. Problème installation SQL server express
    Par Guennec.Yannick dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 22/03/2006, 19h26
  2. Sql Server Express - Probleme index unique et valeurs null
    Par Fayoul dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 17/02/2006, 17h22
  3. sql server express 2005 en français
    Par gock dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/01/2006, 16h03
  4. license sql server express 2005
    Par roninou dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/11/2005, 16h21
  5. compatibilité Sql server express 2005 & Mondrian
    Par xikilla dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 17/10/2005, 14h12

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