[英]Node JS - mysql - querying inside of a callback of a query
我想知道是否有可能在另一个查询的回调中查询数据库。 例如
connection.connect();
connection.query(query, [param1, param2], function(err, rows, fields) {
// do something
connection.query(new_query, function(err, rows, fields) {
// do something else
});
});
connection.end();
我收到Error: Cannot enqueue Query after invoking quit.
该代码第4行出现错误。 所以我想知道这是否可能。
您的问题的解释:
js是逐行执行的。 依次为:
然后,当对数据库的查询完成时,将执行2.中的回调,但是3.之前的回调已执行,从而终止了连接。 因此,在回调中,由于连接已关闭,您无法再进行查询。
解:
connection.end()
应该在最后一个嵌套查询中
固定代码:
connection.connect();
connection.query(query, [param1, param2], function(err, rows, fields) {
// do something
connection.query(new_query, function(err, rows, fields) {
// do something else
connection.end();
});
});
是的,您可以在回调中发出查询。 您收到错误消息是因为connection.end调用不在回调中。 现在,在第一个回调触发之前,它将被调用。
我尝试用于connection.release();
pool.getconnection(function(err,connection){
if(!err)
{
connection.release();//after this perform query operation
connection.query(query, [param1, param2], function(err, rows, fields) {
// do something
connection.query(new_query, function(err, rows, fields) {
// do something else
});
});
}
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.