Node.js 如何在nodejs mysql多sql查询中获得最终结果
除了使用asyncjs,我如何才能优雅地获得最终结果 当前代码不优雅,还有其他方法吗 非常感谢Node.js 如何在nodejs mysql多sql查询中获得最终结果,node.js,express,node-mysql,Node.js,Express,Node Mysql,除了使用asyncjs,我如何才能优雅地获得最终结果 当前代码不优雅,还有其他方法吗 非常感谢 exports.index = function(req, res){ connection.query('select * from ued_task where taskState=0 and isQ=0 order by taskId desc', function(err, tasks, fields) { tasks.forEach(function(task, in
exports.index = function(req, res){
connection.query('select * from ued_task where taskState=0 and isQ=0 order by taskId desc', function(err, tasks, fields) {
tasks.forEach(function(task, index){
task.userIds = (task['UD']+task['UI']+task['builder']).replace(/\,+/g,',').replace(/\,$/, '').split(',');
task.users = [];
task.userIds.forEach(function(single) {
connection.query("select * from user where userId=" + single, function(err, rows, fields) {
task.users.push({
'name' : rows[0].name,
'ename' : rows[0].userName,
'position' : rows[0].position
});
if(index === tasks.length-1){
if (err) throw err;
console.log(tasks);
res.render('index', {
title: 'task sys',
tasks: tasks,
moment: moment
});
}
});
});
});
});
};
我被编辑了我的描述是错误的,不是上次的结果,这是最终的结果,就像我的新更新代码一样,谢谢。
exports.index = function(req, res){
var result = {};
result.title = 'task sys';
result.moment = moment;
var f3 = function(single){
connection.query("select * from user where userId=" + single, function(err, rows, fields) {
task.users.push({
'name' : rows[0].name,
'ename' : rows[0].userName,
'position' : rows[0].position
});
if(index === tasks.length-1){
if (err) throw err;
console.log(tasks);
res.render('index', result);
}
});
}
var f2 = function(task, index){
task.userIds = (task['UD']+task['UI']+task['builder']).replace(/\,+/g,',').replace(/\,$/, '').split(',');
task.users = [];
task.userIds.forEach(f3);
}
var f1 = function(cb){
var sql = 'select * from ued_task where taskState=0 and isQ=0 order by taskId desc'
connection.query(sql, function(err, tasks, fields) {
result.tasks = tasks;
tasks.forEach(f2);
});
};
f1();
};