mysql node null_使用node-mysql中的连接池

根据原来generic-pool的例子修改过来的,这样可以少一个依赖了,哈哈

mysql-pool.js

var mysql = require('mysql');

var mysqlConfig = require('../config/mysql');

var env = process.env.NODE_ENV || 'development';

if(mysqlConfig[env]) {

mysqlConfig = mysqlConfig[env];

}

exports.createMysqlPool= module.exports.createMysqlPool = function(){

return mysql.createPool({

host: mysqlConfig.host,

user: mysqlConfig.user,

password: mysqlConfig.password,

database: mysqlConfig.database

});

}

创建一个简单的客户端链接帮助类 mysqlclient

// mysql CRUD

var sqlclient = module.exports;

var _pool = null;

var NND = {};

/*

* Innit sql connection pool

* @param {Object} app The app for the server.

*/

NND.init = function(){

if(!_pool)

_pool = require('./mysql-pool').createMysqlPool();

};

/**

* Excute sql statement

* @param {String} sql Statement The sql need to excute.

* @param {Object} args The args for the sql.

* @param {fuction} callback Callback function.

*

*/

NND.query = function(sql, args, callback){

_pool.getConnection(function(err, client) {

if (!!err) {

console.error('[sqlqueryErr] '+err.stack);

return;

}

client.query(sql, args, function(err, res) {

_pool.releaseConnection(client);

callback.apply(null, [err, res]);

});

});

};

/**

* Close connection pool.

*/

NND.shutdown = function(){

_pool.end();

};

/**

* init database

*/

sqlclient.init = function() {

if (!!_pool){

return sqlclient;

} else {

NND.init();

sqlclient.insert = NND.query;

sqlclient.update = NND.query;

//sqlclient.delete = NND.query;

sqlclient.query = NND.query;

return sqlclient;

}

};

/**

* shutdown database

*/

sqlclient.shutdown = function() {

NND.shutdown();

};

实际调用类

var utils = require('../lib/utils');

var mysqlClient = require('./mysqlcliet').init();

var orgdao = module.exports;

orgdao.queryOrgByPId = function (pid, cb){

var sql = 'YOUR SQL';

var args = [pid];

mysqlClient.query(sql,args,function(err, res){

if(err !== null){

utils.invokeCallback(cb, err.message, null);

}

else {

if (!!res) {

utils.invokeCallback(cb, null, res);

}

else{

utils.invokeCallback(cb, null, null);

}

}

});

};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值