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 :

Récupérer le résultat d'une requête dans une variable


Sujet :

NodeJS

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2016
    Messages : 32
    Points : 29
    Points
    29
    Par défaut Récupérer le résultat d'une requête dans une variable
    Bonjour à tous,

    voici 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    var http = require("http");
    var url = require("url");
    var fs = require("fs");
    require("remedial");
    var mysql = require('mysql');
    var bd = require("./js_serveur/bd.js");
    var querystring = require("querystring");
     
    var txta = "hello";
    bd.connexion();
     
     
     
     
     
     
            var req = "SELECT idquestion, nomQuestionnaire, description, reponseA, reponseB, reponseC, reponseD, bonneReponse from question inner join questionnaire on question.idquestionnaire = questionnaire.idquestionnaire";
            bd.instance.query(req, function (error, results, fields) {
                if (error) throw error;
                var txt ="";
                for(var question of results){
     
                        txt +='<td>'+question['description'];
     
                }
     
     
            });
     
     
    http.createServer(function (req, res) {
        res.writeHead(200, {'Content-Type': 'text/plain'});
        res.write();
        res.end(question);
    }).listen(4200);
    j'aimerai tout simplement rentrer la variable txt dans le res.write(), mais je n'y arrive pas, je suis un habitué de pdo sur php et là je suis perdu, merci à tous

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    quand le code reçoit la réponse de la requête, il y a des variables "error, results, fields" donc regardez ce qu'elles contiennent.

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2016
    Messages : 32
    Points : 29
    Points
    29
    Par défaut
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    var http = require("http");
    var url = require("url");
    var fs = require("fs");
    require("remedial");
    var mysql = require('mysql');
    var bd = require("./js_serveur/bd.js");
    var querystring = require("querystring");
     
    var txta = "hello";
    bd.connexion();
     
     
     
     
    var results = '';
    var txt ="hhh";
    console.log(txt);
            var req = "SELECT idquestion from question ";
            bd.instance.query(req, function (error, results, fields) {
                if (error) throw error;
                console.log (results);
     
     
                }
     
     
            );
     
        txt += 'description';
     
         console.log(txt);
         console.log (results);
     
     
    http.createServer(function (req, res) {
        res.writeHead(200, {'Content-Type': 'text/plain'});
        res.write('hry');
        res.end();
    }).listen(4200);
    alors pour te répondre mon premier console.log de results fonctionne mais pas le second, pourtant pour faire passer une variable locale en globale en js suffit bien de l'annoncer comme j'ai fait en haut : var results = ''; ??

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    le lancement de la requête est certainement asynchrone donc les résultats sont seulement disponibles dans la fonction anonyme.
    si vous voulez séparer le code, vous pouvez le mettre dans une autre fonction comme cela :
    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
    bd.instance.query(req, function (error, results, fields) {
    	if (error) throw error;
     
    	traitement_resultats(results);
     
    });
     
     
    function traitement_resultats(resultats)
    {
     
    	console.log(["traitement_resultats", resultats]);
     
     
     
    }

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2016
    Messages : 32
    Points : 29
    Points
    29
    Par défaut
    yes ça l'affiche aussi mais ce qui m'intéresse c'est de le mettre dans le res.write en fait, là ça fait juste une autre fonction avec un console.log ? Globalement je ne souhaite juste récupérer une variable globale que je puisse insérer n'importe où. Un peu comme dans le pdo de php

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    ah oui je crois qu'il y a aussi une question de contexte puisque la variable "res" qui sert à répondre à la requête http est seulement disponible dans une autre fonction anonyme.
    donc essayez de faire quelque comme cela par exemple :

    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
    http.createServer(function (req, res) {
     
    	var req = "SELECT idquestion, nomQuestionnaire, description, reponseA, reponseB, reponseC, reponseD, bonneReponse from question inner join questionnaire on question.idquestionnaire = questionnaire.idquestionnaire";
     
    	bd.instance.query(req, function (error, results, fields) {
     
    		if (error) throw error;
     
     
    		res.writeHead(200, {'Content-Type': 'text/plain'});
     
    		for (var question of results) {
    			res.write(question["description"] + "\n");
    		}
     
    		res.end();
     
     
    	});
     
    }).listen(4200);

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juin 2016
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juin 2016
    Messages : 32
    Points : 29
    Points
    29
    Par défaut
    Merci matthieu, en rajoutant Jsontstringifly en plus de ton code, res.write(JSON.stringify(question)); ça fonctionne

    merci à toi

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

Discussions similaires

  1. Récupérer le résultat d'une variable dans un tableau (VBA)
    Par fredplusvar dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/03/2014, 18h25
  2. Réponses: 2
    Dernier message: 31/07/2013, 14h53
  3. [SQL-VBA] récupérer le résultat d'une requète SQL dans un fichier txt
    Par djidanestribbal dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 13/02/2007, 15h25
  4. récupérer le résultat d'une requête sql dans un edit
    Par bertrand_declerck dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/07/2005, 14h07
  5. Réponses: 7
    Dernier message: 30/06/2005, 10h06

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