在此处运行多个查询的是代码
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。节点的新手可以帮助我。我尝试用同步瀑布不了解。
答案 0 :(得分:0)
您应该在第二个查询之后而不是第一个查询之后调用callback()
函数。根据{{3}},该查询可能甚至没有被调用。
此外,您似乎正在覆盖对象属性,但是由于我不知道您的意图,我不会赘述。
我还建议您使用稍微更好的命名约定,即不要对两个不同的查询使用 results1 ,从长远来看,您最终会感到困惑。