Partage
  • Partager sur Facebook
  • Partager sur Twitter

Return null nodejs

Sujet résolu
    7 décembre 2019 à 23:04:39

    Bonjour,

    Je débute sur nodejs.

    Ceci doit être une erreur très simple mais je n'arrive pas à la trouver.

    Je me connecte à ma base de données qui est une base de données Phpmyadmin.

    Puis j'utilise Postman pour faire des requêtes et récupérer l'objet de ma table.

    Mais c'est là que vient mon problème l'objet renvoyé est nul et que dans la console il y a bien quelque chose donc cela vient bien tu retour dans mon deuxième fichier.

    Connexion.js

    const mysql = require('mysql');
    
    const connection = mysql.createConnection({
        host     : 'localhost',
        user     : 'XXXX',
        password : 'XXXX',
        database : 'Domotique'
    });
    
    
    connection.connect(function(err) {
        if(err){
            console.log(err.code);
            console.log(err.fatal);
            console.log("Pas pus ce co");
        }
        else{
            console.log("Conecter");
        }
    });
    
    
    
    module.exports = async function (ctx) {
    
        $query = ctx;
        connection.query($query, function(err, rows, fields) {
            if(err){
                console.log("An error ocurred performing the query.");
                return;
            }
    
            console.log("Query succesfully executed: ", rows);
            return rows     
        });
    }

     DAOUsers.js

    const db = require('../bd/Connexion');
    
    module.exports.all = async function (ctx) {
    	return db("SELECT * FROM `User`")
    }

    l'objet ne revient pas ici

     Users.js

    const DAOUsers = require('../DAO/DAOUsers')
    
    module.exports.all = async function (ctx) {
    	const allUsers = DAOUsers.all();
    	const arrayUsers = [];
    	arrayUsers.push(allUsers);
    	ctx.body = arrayUsers
    	//ctx.throw(200, 'ok');
    }

    merci de prendre le temps de m'aider

    -
    Edité par Remi B 7 décembre 2019 à 23:05:13

    • Partager sur Facebook
    • Partager sur Twitter
      8 décembre 2019 à 12:38:28

      Salut. Non ce n'est pas une base de données phpmyadmin (mais Mysql probablement). Pour en venir à ton problème je vois que tu as "async" partout mais pas de "await". ça donne quoi avec ça?

      const allUsers = await DAOUsers.all();



      • Partager sur Facebook
      • Partager sur Twitter
        8 décembre 2019 à 13:29:46

        Bonjour,

        Mauvais forum

        Le sujet est déplacé de la section Langage Java vers la section Javascript

        • Partager sur Facebook
        • Partager sur Twitter
          8 décembre 2019 à 13:41:36

          J'ai installer un serveur lamp et ce n'est plus Mysql  mais un MariaDB avec une interface phpMyAdmin ce qui m'a induit en erreur.

          Malheureusement ceci n'a pas résolu mon problème je n'ai toujours rien dans mon body

          cela s'affiche toujours très bien dans la console

          je l'ai ajouté aussi à cette ligne

          return await db("SELECT * FROM `User`")

          mais sans aucun changement

          AbcAbc6 a écrit:

          Bonjour,

          Mauvais forum

          Le sujet est déplacé de la section Langage Java vers la section Javascript

          merci désolé pour la gêne occasionnée

          -
          Edité par Remi B 8 décembre 2019 à 13:42:41

          • Partager sur Facebook
          • Partager sur Twitter
            9 décembre 2019 à 15:11:45

            J'ai trouvé le problème plus en détail mais je ne comprends pas pourquoi ceci ne fonctionne pas
            j'ai pris une variable pour résoudre ce problème mais cela ne fonctionne pas
            c'est la variable res
            const mysql = require('mysql');
            
            const connection = mysql.createConnection({
                host     : 'localhost',
                user     : 'xxxxxx',
                password : 'xxxxxx',
                database : 'Domotique'
            });
            
            
            connection.connect(function(err) {
                if(err){
                    console.log(err.code)
                    console.log(err.fatal)
                    console.log("Pas pus ce co")
                }
                else{
                    console.log("Conecter")
                }
            });
            
            
            
            module.exports = async function (query) {
            
                var res
                connection.query(query, function(err, rows, fields) {
                    if(err){
                        console.log("An error ocurred performing the query.")
                        return console.log(err)
                    }
                    else{
                        console.log("Query succesfully executed: ", rows)
                        res = rows
                        // return rows
                    }
                });
                console.log(res)    // <- res est vide 
                return await res
            }
            

            -
            Edité par Remi B 10 décembre 2019 à 13:21:48

            • Partager sur Facebook
            • Partager sur Twitter
              14 décembre 2019 à 14:27:23

              Résultats pour ceux qui en ont besoin

              Connexion.js

              const path = require('path'); // chemin
              const knex = require('knex'); //Knex is a SQL query builder
              
              
              module.exports = knex({
                  client: 'mysql',
                  connection: {
                  host : 'localhost',
                  user : 'xxxx',
                  password : 'xxxxx',
                  database : 'Domotique'
                  }
              });

              DAOUsers.js

              const db = require('../bd/Connexion');
              /*
              module.exports.all = async function (ctx) {
              	return await db("SELECT * FROM `User`")
              }*/
              
              
              module.exports.all = async function (ctx) {
                 return await db.select('*').from('User');
              }




              • Partager sur Facebook
              • Partager sur Twitter

              Return null nodejs

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown