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

回到顶部