2017-09-25 106 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); 
    }); 

});