UNPKG

nyx_server

Version:

Node内容发布

58 lines (51 loc) 1.75 kB
var mysql = require("mysql"); var util = require("util"); var baseConnect = require("./Connection"); var Promise = require("bluebird"); function Connection(connectParams, pool) { baseConnect.apply(this, arguments); } util.inherits(Connection, baseConnect); Connection.prototype._create = function(connectParams) { var connection = mysql.createConnection(connectParams); //console.log("connect" , connection); if (this.pool) { var _self = this; connection.on('error', function(err) { console.log('db error', err); if (err.code === 'PROTOCOL_CONNECTION_LOST') { // Connection to the MySQL server is usually //_self.pool && _self.pool.close(_self); // lost due to either server restart, or a _self.close(); //关闭当前链接 } }); } return connection; }; Connection.prototype.query = function(sql, values) { var self = this; return new Promise(function(resolve, reject) { var fn = function(err, result) { if (err) { console.log("query connection err", err.stack); console.log("query connection err:" + err.code, err.stack); if (err.fatal) { console.log("query err.fatal") self.close(); } reject(err); } else { resolve(result); } }; self.connection.query(sql, values, fn); }); }; Connection.prototype.vaild = function() { var _self = this; return this.query("select 1 from dual").then(function() { return true; }).catch(function(err) { return false; }); }; module.exports = Connection;