+-

我真的很困惑在node- mysql中使用connection.end().
我不完全理解它的位置,目前我将它放在查询之后但是如果我创建一个新查询我得到一个错误无法在调用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:http://jsfiddle.net/K2FBk/中做了一个更明智的解释,以更好地解释我得到的问题. node-mysql的文档并没有完全解释放置connection.end()的正确位置
应该去哪里避免这个错误?
最佳答案
每 the documentation:
Closing the connection is done using end() which makes sure all remaining queries are executed before sending a quit packet to the mysql server.
然后,只有当您停止向MySQL发送查询时,即当您的应用程序停止时,才会调用connection.end().您不应该一直创建/结束连接:只需对所有查询使用相同的连接(或使用连接池以提高效率).
点击查看更多相关文章
转载注明原文:node-mysql connection.end()在哪里 - 乐贴网