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


Sujet :

NodeJS

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 130
    Points : 95
    Points
    95
    Par défaut Récupérer le résultat d'une requête
    Bonjour à tous,

    J'aurais besoin de vos lumières, j'arrive du monde Delphi et j'avoue que je suis un peu déboussolé avec NodeJs.

    J'ai déjà fait un premier projet NodeJs + ejs + MySQL, mais un peu à l'arrache... il fonctionne correctement mais celui-ci j'aimerais le faire proprement...

    Donc voilà comment j'aimerais structurer ce projet :

    Le fichier principal : app.js
    un/des autres fichiers pour décrire mes objets : Utilisateur.js, Vehicule.js

    Je sais comment inclure tous ces fichiers dans le projet au lancement...jusque là tout-vas bien

    mais voilà où je pèche...

    Voivi un extrait du code de app.js
    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
     
    var express = require('express');
    var app = express();
    const mysql= require('mysql');
    const fs = require('fs');
    const vm = require('vm');
     
    const path = __dirname + '/views/';
    vm.runInThisContext(fs.readFileSync(__dirname+'/SQL.js'));
    vm.runInThisContext(fs.readFileSync(__dirname+'/ClassesVehicule.js'));
     
    var cnn = mysql.createConnection({
      multipleStatements : true,
      host : 'localhost',
      port : 1234,
      database : 'DB_MaDB',
      user : 'root',
      password : '1234'
    })
     
    app.set('view engine','ejs');
     
    //initialisation des objets
    var Vehicule = new ClasseVehicule();
    var Utilisateur = new ClasseUtilisateur();
     
    app.get("/",function(req,res){
        console.log("Quelqu'un se connecte...");
      //1er rendu
      console.log('test = '+Test(cnn));
     
    });
    voici le code appelé pour exec dans un fichier appelé SQL.js (le paramètre con, signifie Connexion )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    function Test(con){
      con.query('SELECT * FROM T_MATERIEL',function(err,results){
        if (err!=null){
        console.log('query erreur Vehicule = ' + err)
      }
      else{
        console.log('>>>>'+results[0].MATERIEL);
      	return results[0].MATERIEL;
     
      }
      });
    }
    ma question est comment récupérer le résultat de la fonction Test() dans app.js

    Ma requête fonction correctement, mais je ne sais pas retourner le résultat...

    à moins qu'il ne faut pas faire comme ça en NodeJs

    Merci à ceux qui passerons par là et merci a ceux qui pourrons m'éclairer un peu

    Bonne soirée
    Christophe

  2. #2
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut
    Bonjour,

    Il faut que tu ajoute une fonction callback en paramètre de ta fonction.

    Exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function maFonction(param1, param2, callback){
        var result;
        var err;
        ...
        callback(err, result);
    }
     
    maFonction("param1", "param2", function(err, result){
        doSomethingWithResult(result);
        doSomethingWithError(err);
    });
    Un conseil: Tu devrais mettre test fonctions dans des modules :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    module.exports = function monModule(){
        return { 
            maFonction: function(){
                ...
            },
            ...
        }
    }
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    exports.maFonction = function(){
        ...
    };
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 130
    Points : 95
    Points
    95
    Par défaut
    Super Merci d'avoir Répondu...

    En effet je n'ai pas bien compris comment ça marche les callback, je regarde ça de près et vous tiens au courant....

    ainsi que ton histoire de module, car effectivement c'est plus mieux

    Merci encore

  4. #4
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 130
    Points : 95
    Points
    95
    Par défaut
    Merci pour ces pistes slim,

    je viens de tester je que tu m'as dit et cela fonctionne, mais va vraiment falloir que je change de cerveau....


    je regarde les tutos que tu propose (et encore des tutos et encore, c'est que le début d'accord .... )

    Merci et bonne soirée

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 130
    Points : 95
    Points
    95
    Par défaut
    Super, Grâce à toi Slim, J'ai fait maigrir mon code d'une page écran....

    Mais je ne met le sujet en résolu car, je pense avoir d'autre détails à éclaircir...

    Bonne soirée

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 130
    Points : 95
    Points
    95
    Par défaut
    Merci à tous de m'avoir aidé sur ce coup....

    je n'ai plus de questions, mais d'autres arrivent... car je suis en train faire de superbes pyramides de Doom... alors à bientôt mais pour le moment je LCFM (ou RTFM)

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

Discussions similaires

  1. [Débutant] Projet [Création site internet] besoin d'AIDE (Modérateur : a deplacer si je suis pas au bon endroit)
    Par adrenaline75 dans le forum Développement Web avec .NET
    Réponses: 0
    Dernier message: 09/01/2014, 11h51
  2. Réponses: 0
    Dernier message: 15/07/2012, 21h00
  3. [XL-2010] Besoin d'aide : contenu d'une cellule en fonction d'une autre
    Par Lisa91 dans le forum Excel
    Réponses: 2
    Dernier message: 08/02/2011, 16h49
  4. D'autres idées pour faire la même chose ?
    Par Gromitou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/05/2006, 12h15
  5. Réponses: 7
    Dernier message: 30/10/2005, 12h54

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