2017-09-25 238 views
0

我想将MySQL结果返回给变量。 我试过以下,但它不工作,因为我得到一个空的变量。使用node.js返回查询执行后的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; 
    } 
}; 
+0

移动'this.pushResult();'回调 –

+0

内@RolandStarke,对不起,我更新了我的代码。 – CairoCoder

+0

@RolandStarke仍然有问题。 – CairoCoder

回答

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); 
    }); 

});