gpt4 book ai didi

mysql - 使用 Node.js 和 MySQL 进行两个查询和循环

转载 作者:行者123 更新时间:2023-11-29 10:33:34 26 4
gpt4 key购买 nike

我有这样的代码:

exports.get_menu = function(req, fn) {
var sql_query = "SELECT id,parent_id,nama,target,keterangan,urutan,status";sql_query +=" FROM tbl_menu WHERE parent_id=0 ORDER BY urutan ASC";
var query = koneksi.query(sql_query, function(err, rows) {
if (err) {
throw err;
console.log(err);
} else {
rows.forEach(function(d) {
var sql_query2 = "SELECT id,parent_id,nama,target,keterangan,urutan,status";sql_query2 +=" FROM tbl_menu WHERE parent_id = "+d.id+" ORDER BY urutan ASC";
var query2 = koneksi.query(sql_query2, function(err, rows2) {
if (err) {
return fn(false, err);
console.log(err);
} else {
return fn(true, rows2)
};
});
);
}
});
};

它总是会导致错误。

最佳答案

您在 forEach 循环内使用数据库查询,并且每次调用 fn 函数时都是错误的。为了避免无法设置 header 错误,请使用 Promise 或异步模块。

    var async = require('async');
exports.get_menu = function(req, fn){
var sql_query = "SELECT id,parent_id,nama,target,keterangan,urutan,status";
sql_query +=" FROM tbl_menu WHERE parent_id=0 ORDER BY urutan ASC";
var query = koneksi.query(sql_query,function(err,rows){
if(err) {
console.log(err);
throw err;
} else {
var result = [];
async.each(rows, function(row, callback){
var sql_query2 = "SELECT id,parent_id,nama,target,keterangan,urutan,status";
sql_query2 +=" FROM tbl_menu WHERE parent_id = "+row.id+" ORDER BY urutan ASC";
var query2 = koneksi.query(sql_query2,function(err,rows2){
if(err) {
return callback(err);
}
else{
result.push(rows2);
return callback()
};
});
}, function(err){
if(err){
console.log(err);
return fn(false, err);
}
else{
return fn(true, result);
}
})
}
});
};

关于mysql - 使用 Node.js 和 MySQL 进行两个查询和循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46927213/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com