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



  • 2017-02-10 16:22:13

    git历史记录查询

    查看提交历史:git log 查看提交历史并显示版本间的差异:git log -p 查看指定历史:git log xxx(sha1值) -p 查看提交历史(指定时间):

  • 2017-02-13 17:50:05

    cURL error 60: SSL certificate problem: unable to get local issuer certificate

    Drupal 8 version uses Guzzle Http Client internally, but under the hood it may use cURL or PHP internals. If you installed PHP cURL on your PHP server it typically uses cURL and you may see an exception with error Peer certificate cannot be authenticated with known CA certificates or error code CURLE_SSL_CACERT (60).

  • 2017-02-16 08:09:01

    HTML中PRE和p的区别

    pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。 <pre> 标签的一个常见应用就是用来表示计算机的源代码。

  • 2017-02-16 15:14:14

    动态加载js和css

    开发过程中经常需要动态加载js和css,今天特意总结了一下常用的方法。