【问题标题】:node.js - Combining mysql results into a single objectnode.js - 将 mysql 结果组合成一个对象
【发布时间】:2016-03-21 14:08:45
【问题描述】:

所以基本上我想做的是这样的(不处理错误以使其更短):

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

现在我知道这是由于节点的异步性质造成的问题。有没有办法得到我想要的结果?

【问题讨论】:

    标签: javascript mysql node.js


    【解决方案1】:

    因为connection.query是异步的,所以combinedString在那个时候你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);
            });
        });
    
    })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-04
      • 2013-07-28
      • 1970-01-01
      • 1970-01-01
      • 2016-06-30
      • 1970-01-01
      • 2016-10-05
      • 2018-11-02
      相关资源
      最近更新 更多