node-mysql connection.end()去哪里
我真的对在node-mysql中使用connection.end()感到困惑。
我不完全了解它的去向,目前我将其放在查询之后,但是如果我创建一个新查询,则会收到错误消息 Cannot enqueue Query after
invoking quit.
现在我的应用有很多支票,其中一张是:
socket.on('connect', function(data,callBack){ var session = sanitize(data['session']).escape();
var query = connection.query('SELECT uid FROM sessions WHERE id = ?', [session],
function(err,results){
if(err){
console.log('Oh No! '+err);
}else{
io.sockets.socket(socket.id).emit('connectConfirm',{data : true});
}
connection.end();
});
});
现在在那之后,如果我有任何其他查询,我会发生错误。
我在jsFiddle中做了一个更详尽的解释: :
以更好地解释我遇到的问题。node-
mysql的文档并未完全说明放置的正确位置connection.end()
应该去哪里避免该错误?
回答:
根据文档:
使用end()关闭连接,以确保在将退出数据包发送到mysql服务器之前,执行所有剩余的查询。
connection.end()
那么仅当您停止向MySQL发送查询时,即应用程序停止时,才调用。您不应该一直创建/结束连接:仅对所有查询使用相同的连接(或使用连接池以提高效率)。
以上是 node-mysql connection.end()去哪里 的全部内容, 来源链接: utcz.com/qa/418658.html