node-mysql where does connection.end() go

后端 未结 2 1968
悲哀的现实
悲哀的现实 2021-02-12 13:11

I am really confused with using connection.end() in node-mysql.

I don\'t fully understand where it goes, at the moment i place it after a query but then if i create a ne

相关标签:
2条回答
  • 2021-02-12 13:27

    Per 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.

    connection.end() is then supposed to be called only when you stop sending queries to MySQL, i.e. when your application is stopping. You shouldn't create/end connections all the time: just use the same connection for all your queries (or use a connection pool to be more efficient).

    0 讨论(0)
  • 2021-02-12 13:44
    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(); // close connection outside the callback
       });
    

    Its giving error because you are closing connection during en-queue

    0 讨论(0)
提交回复
热议问题