node-mysql connection.end()在哪里

 手机用户2602935245 发布于 2023-02-09 09:23

我真的很困惑在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中做了一个更明智的解释:http://jsfiddle.net/K2FBk/以更好地解释我得到的问题.node-mysql的文档并没有完全解释正确的放置位置connection.end()

应该去哪里避免这个错误?

1 个回答
  • 根据文件:

    使用end()关闭连接,这确保在将退出数据包发送到mysql服务器之前执行所有剩余的查询.

    connection.end()然后应该只在你停止向MySQL发送查询时调用,即当你的应用程序停止时.您不应该一直创建/结束连接:只需对所有查询使用相同的连接(或使用连接池以提高效率).

    2023-02-09 09:29 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有