NodeJS连接MySQL出现Cannot enqueue Handshake after invoking quit.

2017-07-14 13:51:58

原因在于node连接上mysql后如果因网络原因丢失连接或者用户手工关闭连接后,原有的连接挂掉,需要重新连接;如下代码,每次访问结束都关闭,每次开始访问前重连接下,代码中没有监听连接的fatal错误,copy需谨慎

[javascript] view plain copy

  1. var mysql = require('mysql');  

  2.   

  3. var connection = mysql.createConnection({  

  4.     host     : 'localhost',  

  5.     user     : 'root',  

  6.     password : '123456',  

  7.     database : 'test'  

  8. })  

  9. ,slice = [].slice  

  10. ;  

  11.   

  12. var commonMethod = function(callback){  

  13.     connection = mysql.createConnection(connection.config);  

  14.     connection.connect();  

  15.     callback.call(connection,callback);  

  16.     connection.end();  

  17. };  

  18.   

  19. var onerror = function(){  

  20.     console.log(err);  

  21. };  

  22.   

  23. var query = function(){  

  24.     var args = arguments;  

  25.     commonMethod(function(){  

  26.         connection.query.apply(connection,args)  

  27.         .on('error',onerror);     

  28.     });  

  29. };  



  • 2020-12-01 16:14:54

    HTTP状态码429的含义

    发生429是服务器接口并发太多引起的,可根据代码进行修改,放开限制次数

  • 2020-12-01 16:19:26

    vue中动画分布解析

    enter, enter-active, enter-active-to, (开始 进入阶段的)第1帧 属性值,到 (默认属性值 的过渡阶段),移除enter动画, leave, leave-active, leave-active-to (开始 离开 阶段的)第1帧 默认属性值,到 (属性值 的过渡阶段),移除leave动画

  • 2020-12-01 16:21:47

    Meteor与express结合开发

    Meteor本质上是一个已经公开了连接 http服务器的节点应用程序,这意味着您可以像下面这样定义服务器路由:,如果您坚持使用Express,则可以将Express路由注册为Connect中间件,如下所示:

  • 2020-12-01 16:25:32

    nuxtjs引入jquery

    nuxt引入jQuery库 nuxtjs如何添加 Webpack 插件?

  • 2020-12-01 16:43:37

    fieldset标签做输入框

    比如 vuetify中的 input组件,就用到了fieldset做边框, 这个时候我们想改边框,却找不到border,因为fieldset是靠color来修改边框颜色的。