繁体   English   中英

多个查询Node.js MySQL

[英]Multiple queries nodejs mysql

在这里运行多个查询的代码

 module.exports.getAllternaryCat=function(req,res) {


     var output = {};

  connection.query('SELECT * FROM ternary_categories',function(error,results,filelds){
      if(error) throw err;

      async.eachSeries(results,function(data,callback){ // It will be executed one by one
              //Here it will be wait query execute. It will work like synchronous
            //  output.push(data);
                  output['ternaryCategory']= results;
              connection.query('SELECT * FROM secondary_category  where id = '+data.secondary_categoryId,function(error,results1,filelds){
                  if(error) throw err;

                //  output.push(results1)
                output['secondaryCategory']= results1;


                  callback();
              });

              connection.query('SELECT * FROM primary_category  where id = '+data.secondary_categoryId,function(error,results1,filelds){
                  if(error) throw err;

                output['PrimaryCategory']= results1;


              });


      }, function(err, results) {
           res.json({
                    status:true,
                    data:output

                })
      });


  })

}

对主类别的查询不返回结果对象,仅返回ternaryCategory,secondaryCategory,而不返回PrimaryCategory。 节点的新手可以帮助我。 我尝试用同步瀑布不了解。

您应该在第二个查询之后而不是第一个查询之后调用callback()函数。 根据文档 ,该查询可能甚至没有被调用。

此外,您似乎正在覆盖对象属性,但是由于我不知道您的意图,因此我不打算赘述。

我还建议您使用稍微更好的命名约定,即不要对两个不同的查询使用result1 ,从长远来看,您最终会感到困惑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM