使用node.js在查询执行后返回MySQL结果

时间:2017-09-25 15:16:00

标签: mysql node.js return return-value

我想将MySQL结果返回到变量中。 我尝试了以下但是它没有工作,因为我得到一个空变量。

const mysql = require('mysql');
const db    = require('../config/db');
const connection = mysql.createConnection(db);    

module.exports = class Categories {
   constructor (res) {
       this.res = res;
   }

   getCategories() {
       connection.query("SELECT * FROM `categories`", (error, results, fields) => {
           if (error) throw error;
           this.pushResult(results);
       });
   }

   pushResult(value) {
       this.res = value;
       return this.res;
   }
};

1 个答案:

答案 0 :(得分:1)

首先制作一个回调函数:

var Categories = {

    getCategories: function (callback) {
        connection.query("SELECT * FROM `categories`", (error, results, fields) => {
            if(error) { console.log(err); callback(true); return; }
            callback(false, results);
        });
    }

};

然后将其用于路线:

app.get('/api/get_categories', (req, res) => {

    categories.getCategories(function (error, results) {
        if(error) { res.send(500, "Server Error"); return; }
        // Respond with results as JSON
        res.send(results);
    });

});