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 :

Return d'un objet dans une fonction


Sujet :

NodeJS

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    477
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 477
    Points : 198
    Points
    198
    Par défaut Return d'un objet dans une fonction
    Bonjour à vous et merci d'avances pour votre aide.

    Voila je rencontre un petit problème avec mon code.
    J'appelle ma fonction login et j'aimerais récupérer le body du request.

    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
     
    var responce = login();
    console.log(responce);
     
    function login(){
     
        request({
            uri: "http://localhost:80/weddingplaza/chats",
            method: "POST",
            timeout: 10000,
            followRedirect: true,
            maxRedirects: 10
        }, function(error, response, body) {
            //body
        });
    }
    J'ai essayer plusieurs variante, mais sans succès pour ma part.
    Merci à vous,

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Que retourne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function(error, response, body) {
            console.log(body)
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 119
    Points : 203
    Points
    203
    Billets dans le blog
    1
    Par défaut
    Le retour de la fonction et la reponse Ajax ne se passent pas au meme moment ?

    le retour de ta fonction est juste apres que la requete ajax est lancée
    Le retour de la requete ajax peut etre plus long que ca .

    tu peux plutot faire quelqu chose comme ca :

    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
    22
     
    function login(callback){
     
        request({
            uri: "http://localhost:80/weddingplaza/chats",
            method: "POST",
            timeout: 10000,
            followRedirect: true,
            maxRedirects: 10
        }, function(error, response, body) {
      if (callback)callback(error, response, body)
     
        });
    }
     
    //plus loin tu pourras 
     
    login(function(error,response,body){
     
    console.log(response);
     
    })

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    16 959
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 16 959
    Points : 44 122
    Points
    44 122
    Par défaut
    Bonjour,
    @Lakhdr : attention il parle le NodeJS

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    477
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 477
    Points : 198
    Points
    198
    Par défaut
    Mea-culpa, je pensais que la syntaxe coté client était identique de celle coté serveur.
    Voici mon code en entier, l'argument response dans .emit reste vide (ligne 23).
    Pourtant j'ai bien ma réponse dans mon console.log

    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
    22
    23
    24
     
    io.sockets.on('connection', function(socket){
        var thisUser;
        console.log('New user');
     
        var response;
     
        socket.on('login', function(data){
            console.log('function login');
            //        console.log(data);
            request({
                uri: "http://localhost:80/myproject/websockets/connection",
                method: "POST",
                timeout: 10000,
                followRedirect: true,
                maxRedirects: 10
            }, function(error, response, body) {
                console.log(body);
                response = body;
            });
     
        });
        socket.emit('newUser', response);
    });

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    477
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 477
    Points : 198
    Points
    198
    Par défaut
    Je m y prenais mal apparemment, voici le bon code.
    J'ai placé le .emit directement dans le callback de l'objet request.

    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
     
    io.sockets.on('connection', function(socket){
        console.log('New user: ' + socket.id);
     
     
        socket.on('login', function(data){
            var response;
            request({
                uri: "http://localhost:80/myproject/websockets/connection",
                method: "POST",
                timeout: 10000,
                followRedirect: true,
                maxRedirects: 10
            }, function(error, response, body) {
                console.log(body);
                socket.emit('newUser', body);
     
            });
        }); 
    });

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

Discussions similaires

  1. [PHP 5]Accessibilité d'un objet dans une fonction
    Par DonMero dans le forum Langage
    Réponses: 2
    Dernier message: 23/06/2011, 14h39
  2. [Langage/Algorithme] Changer Propriete d'un objet dans une fonction
    Par SVC1234 dans le forum C++Builder
    Réponses: 1
    Dernier message: 11/06/2010, 22h23
  3. Réponses: 4
    Dernier message: 19/06/2007, 10h41
  4. Survie d'un objet créé dans une fonction
    Par dd_garion dans le forum Delphi
    Réponses: 4
    Dernier message: 22/12/2006, 10h49
  5. Transmission d'un objet crée dans une fonction
    Par EvilAngel dans le forum ASP
    Réponses: 2
    Dernier message: 10/05/2004, 20h19

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