【问题标题】:Node.js Multiple Mysql Queries [duplicate]Node.js多个Mysql查询[重复]
【发布时间】:2014-10-22 21:35:42
【问题描述】:

我正在编写用户注册表单。在node-jsnode mysql plugin中,是不是一定要这样写嵌套代码?

var query1 = connection.query('SELECT * FROM table1 WHERE var1 = ?', [var1], function(err, results1) {

    if(results1[0]) {
        var query2 = connection.query('SELECT * FROM table2 WHERE var2 = ?', [var2], function(err, results2) {

            if(results2[0]) {
                var query3 = connection.query('SELECT * FROM table2 WHERE var3 = ?', [var3], function(err, results3) {

                    if(results3[3]) {
                        // do it.
                    }

                });
            }

        });
    }

});

编写嵌套代码真的很无聊。有没有这样的方法来做多个查询?

var query1 = connection.query('SELECT * FROM table1 WHERE var1 = ?', [var1], function(err, results1) {  });
var query2 = connection.query('SELECT * FROM table1 WHERE var2 = ?', [var2], function(err, results2) {  });
var query3 = connection.query('SELECT * FROM table1 WHERE var3 = ?', [var3], function(err, results3) {  });

if(results1[0]) {

} else if(results2[0]) {

} else if(results3[0]) {

} else {
    // do it.
}

【问题讨论】:

    标签: mysql node.js


    【解决方案1】:

    此类问题的常见解决方案是使用像async 这样的实用程序模块。对于您的特定情况,您可以使用 async.waterfall 之类的内容。

    【讨论】:

    • 我没有问异步问题...我只是问是编写像第一个块一样必要的嵌套代码
    • 而我的回答是,你没有编写这样的嵌套代码,async 是编写嵌套匿名函数的一种替代方法。
    • 谢谢。嗯,还有其他方法吗?
    猜你喜欢
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-02
    • 1970-01-01
    相关资源
    最近更新 更多