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. };  



  • 2018-03-05 11:30:04

    iOS wkwebkit 播放HTML5 视频 全屏问题解决

    使用html5 的video标签播放视频的时候,限制视频的尺寸,在android上是没有问题的,但是在ios上发现,视频没有开始播放的时候还是好的,但是一旦播放开是,就会全屏,非常奇怪。

  • 2018-03-07 14:35:32

    centos7下yum安装ffmpeg

    安装EPEL Release,因为安装需要使用其他的repo源,所以需要EPEL支持 yum install -y epel-release

  • 2018-03-08 09:44:12

    前端性能监控:window.performance

    Web Performance API允许网页访问某些函数来测量网页和Web应用程序的性能,包括 Navigation Timing API和高分辨率时间数据。

  • 2018-03-08 09:44:15

    前端性能监控:window.performance

    Web Performance API允许网页访问某些函数来测量网页和Web应用程序的性能,包括 Navigation Timing API和高分辨率时间数据。

  • 2018-03-08 09:47:14

    ES6,Array.fill()函数的用法

    ES6为Array增加了fill()函数,使用制定的元素填充数组,其实就是用默认内容初始化数组。

  • 2018-03-08 09:53:39

    document.readyState

    一个document 的 Document.readyState 属性描述了文档的加载状态。

  • 2018-03-09 02:09:23

    ArrayBuffer:类型化数组

    ArrayBuffer对象、TypedArray对象、DataView对象是JavaScript操作二进制数据的一个接口。这些对象早就存在,属于独立的规格,ES6将它们纳入了ECMAScript规格,并且增加了新的方法。

  • 2018-03-09 11:45:11

    SQL SELECT DISTINCT 语句

    如需从 Company" 列中仅选取唯一不同的值,我们需要使用 SELECT DISTINCT 语句: