Node.js中的多个相关SQL查询

我试图build立一个应用程序,要求我做每个视图/控制器多个查询。

我试图做一个嵌套的结构asynchronous,但SQL结果出现在内部封闭未定义。

这是我用来做到这一点的function:

var conn = db.config(mysql); function run_queries(conn,callback) { conn.query(sql1, var1, function(err, res1) { if(err){ callback(err); return; } console.log(res1); // RETURNS SUCCESSFULLY! conn.query(sql2, var2, function(err, res2) { if(err){ callback(err); return; } console.log(res2); // UNDEFINED :( callback(null, res2); }); }); } run_queries(conn,function(err, result){ console.log(result); // UNDEFINED :( }); 

我检查了我的SQL,这是没有错误。 如果我将sq1与sq2交换,则外部闭包将返回sq2的正确查询。

内部闭包只是不返回查询。

asynchronous对asynchronous调用非常有用。 您可以使用asynchronous模块使代码保持良好状态。

你的代码使用async.parallel

 var conn = db.config(mysql); var async = require('async'); function run_queries(conn, cb) { async.parallel({ res1: function (cb) { conn.query(sql1, var1, function (err, res1) { if (err) { cb(err) } else { cb(null, res1) } }) }, res2: function (cb) { conn.query(sql2, var2, function (err, res2) { if (err) { cb(err) } else { cb(null, res2) } }) } }, function (err, result) { if (err) { cb(err) } else { cb(null, result) } }) } run_queries(conn, function (err, result) { console.log(result); // UNDEFINED :( // GET OBJECT OF res1 AND res2 });