异步编程中的迭代(Node.js)
我想迭代insert到db。迭代完成后,我希望生成成功消息并将用户重定向到特定页面。这就是我使用异步包的原因。 这是我的密码:异步编程中的迭代(Node.js),node.js,async.js,Node.js,Async.js,我想迭代insert到db。迭代完成后,我希望生成成功消息并将用户重定向到特定页面。这就是我使用异步包的原因。 这是我的密码: async.forEachOf(venue_1_split, function (venue, key, callback) { pool.query("INSERT INTO peminjaman_venue VALUES (?,?,?,?,?,?,?)", [id_event, venue, id_google_c
async.forEachOf(venue_1_split, function (venue, key, callback) {
pool.query("INSERT INTO peminjaman_venue VALUES (?,?,?,?,?,?,?)",
[id_event, venue, id_google_calendar, waktu_mulai_1, waktu_selesai_1, tanggal_peminjaman_1, tanggal_peminjaman_1],
function(err, rows, fields){
if (err) throw err;
});
req.flash('message_success', 'Berhasil mengajukan event');
callback(res.redirect('/pengajuan_event'));
}, function (err) {
if (err) console.error(err.message);
});
它有效,但似乎不正确。首先,它返回错误`
“发送邮件后无法设置邮件头”
当我检查数据库时,它只插入了2行。循环在第二次迭代时停止。你能修好我的密码吗。多谢各位
`每次插入后,您都会重定向到
/pengajuan\u事件。试试下面的代码
async.forEachOf(venue_1_split,
function (venue, key, callback) {
pool.query("INSERT INTO peminjaman_venue VALUES (?,?,?,?,?,?,?)",
[
id_event,
venue,
id_google_calendar,
waktu_mulai_1,
waktu_selesai_1,
tanggal_peminjaman_1,
tanggal_peminjaman_1
],
callback(err, rows, fields)
)}, function (err) {
if(err) {
console.error(err.message);
} else {
req.flash('message_success', 'Berhasil mengajukan event');
res.redirect('/pengajuan_event')
}
}
);
节点样式的回调需要(error,result)
,因此不应该抛出错误,而应该返回回调(err)
,而不是回调(res…)
应该回调(null,)
然后,只有在最后的回调中,您才应该调用res
上的方法。迭代运行良好,但重定向消息not executed@mandar.gokhaleI也将callback()替换为函数(err,rows,fields){if(err)throw err;}