NodeJs Mysql返回空结果

时间:2017-03-07 07:38:58

标签: mysql node.js

我有api查询数据并以json格式返回结果。如果我在api.get中调用查询并设置res.send(rows)它工作正常但我需要在不同的方法中调用相同的方法,所以我想我可以在外面编写它并在需要时调用该方法。但是当它在外面时,结果会返回空。

var customerRows[]
app.get('/customers', function(req, res) {
    getCustomers();
    res.json({
        customers : customerRows
    });
});

function getCustomersQuery(callback) {
    var customersDataQuery = mysqlConnection.query('SELECT * from customer_info', function(err, rows, fields) {
        if (!err) {
            if (rows) {
                callback(null, rows);
            }
        } else {
            callback(err, null);
            console.log('Error while performing Query.');
        }
    });
}

function getCustomers() {
    getCustomersQuery(function(err, result) {
        if (err) {
            console.log(err);
        } else {
            customerRows.push(result);
            console.log(customerRows)//prints values
        }
    });
    console.log("Result : "+customerRows);//prints empty
}

我试图将结果设置为我的全局变量 customerRows ,但它返回空。

1 个答案:

答案 0 :(得分:0)

使用此代码

app.get('/customers', function(req, res) {    
    getCustomersQuery(function(err, result) {
        if (err) {
            console.log(err);
        }        
        res.json({
            customers : result
        });
    });
});

function getCustomersQuery(callback) {
    var customersDataQuery = mysqlConnection.query('SELECT * from customer_info', function(err, rows, fields) {
        if (!err) {
            if (rows) {
                callback(null, rows);
            }
        } else {
            callback(err, null);
            console.log('Error while performing Query.');
        }
    });
}