Javascript node.js-将mysql结果合并到单个对象中

Javascript node.js-将mysql结果合并到单个对象中,javascript,mysql,node.js,Javascript,Mysql,Node.js,所以基本上我想做的是这样(不处理错误以缩短时间): 现在我了解到,这是一个由于节点的异步性质而导致的问题。有没有办法得到我想要的结果?因为连接.query是异步的,组合字符串在您res.send时仍然是空的 您需要在回调函数中res.send: .get('/info', function(req, res){ var combinedString = ""; connection.query('SELECT col FROM table1 WHERE id = ?', [re

所以基本上我想做的是这样(不处理错误以缩短时间):


现在我了解到,这是一个由于节点的异步性质而导致的问题。有没有办法得到我想要的结果?

因为
连接.query
是异步的,
组合字符串
在您
res.send
时仍然是空的

您需要在回调函数中
res.send

.get('/info', function(req, res){
    var combinedString = "";

    connection.query('SELECT col FROM table1 WHERE id = ?', [req.user.id], function(err, rows){
        combinedString += rows; 
    });

    connection.query('SELECT col FROM table2 WHERE id = ?', [req.user.id], function(err, rows){
        combinedString += rows; 
    });

    res.send(combinedString);
})
.get('/info', function(req, res){
    var combinedString = "";

    connection.query('SELECT col FROM table1 WHERE id = ?', [req.user.id], function(err, rows){
        combinedString += rows; 
        connection.query('SELECT col FROM table2 WHERE id = ?', [req.user.id], function(err, rows){
            combinedString += rows; 
            res.send(combinedString);
        });
    });

})