我是node.js世界的新手,所以我的问题对你来说很奇怪。 我有一个非常简单的场景: 1)在db中插入行,获取此行的ID 2)插入多个行,每个行都使用我们之前获得的ID
流程存在问题......在我们从第1阶段得到响应或者所有阶段完成之前(在调用connection.end()之前)阶段2开始。
我尝试使用异步模块,但它对我没有帮助 我们来看看代码:
// open connection
conn.query('INSERT INTO receipt SET ?', {postid: postGUID, body: body}, function(err, result) {
if (err) throw err;
console.log("ID: "+result.insertId );
conn.query('INSERT INTO imgs SET ?', {postid: result.insertId, link: imgSrc}, function(err, result) {
if (err) throw err;
});
});
conn.end( function(err) {
console.log("CLOSE CONNECTION");
console.log(err);
});
你可以帮帮我吗?
答案 0 :(得分:2)
由于conn.query很可能是异步的,因此在完成查询之前关闭连接。快速修复可能如下。
conn.query('INSERT INTO receipt SET ?', {postid: postGUID, body: body}, function(err, result) {
if (err) throw err;
console.log("ID: "+result.insertId );
conn.query('INSERT INTO imgs SET ?', {postid: result.insertId, link: imgSrc}, function(err, result) {
if (err) throw err;
conn.end( function(err) {
console.log("CLOSE CONNECTION");
console.log(err);
});
});
});
更好的解决方法可能是在流程结束时关闭连接。