From: konekoneko Date: Fri, 16 Nov 2012 10:40:50 +0000 (+0900) Subject: mysql_poolクラスを別のファイルに分離した X-Git-Url: http://git.osdn.jp/view?a=commitdiff_plain;h=243495769eea50d1496b077f1185e86f9e6824e6;p=webchat%2FWebChat.git mysql_poolクラスを別のファイルに分離した --- diff --git a/mysql_pool.js b/mysql_pool.js new file mode 100644 index 0000000..95ff102 --- /dev/null +++ b/mysql_pool.js @@ -0,0 +1,36 @@ +var async = require("async"); + +module.exports = function(param) +{ + this.query = function(query,param,callback) + { + async.waterfall([ + function(next){ + pool.acquire(next); + }, + function(client,next){ + client.query(query,param,function(err,result){ + next(err,result,client); + }); + }, + function(result,client,next){ + pool.release(client); + next(null,result); + } + ],callback); + } + var generic_pool = require("generic-pool"); + var mysql = require("mysql"); + pool = generic_pool.Pool({ + name : "mysql", + max : 10, + create : function(cb){ + var connection = mysql.createConnection(param); + connection.connect(); + cb(null,connection); + }, + destroy : function(db){ + db.end(); + } + }); +} diff --git a/profile.js b/profile.js index d838ade..8fef58b 100644 --- a/profile.js +++ b/profile.js @@ -263,41 +263,28 @@ function RenderMessage(res,msg,info) // function ProfileCollection() { - var pool = new MySQLPool(); + var MySQLPool = new require("./mysql_pool.js"); + var pool = new MySQLPool({ + host : "localhost", + user : $db_user, + password : $db_password, + database : "profile", + }); this.AuthAsync = function(name,password,cb){ async.waterfall([ - function(callback){ - pool.acquire(callback); - }, - function(client,callback){ - client.query("SELECT * FROM list WHERE name = ?",[name],function(err,result){ - callback(err,result,client); - }); + function(next){ + pool.query("SELECT * FROM list WHERE name = ?",[name],next); }, - function(result,client,callback){ - pool.release(client); + function(result,next){ if(result[0].password == password) - callback(null,true); + next(null,true); else - callback(null,false); + next(null,false); } ],cb); } this.GetAsync = function(name,cb){ - async.waterfall([ - function(callback){ - pool.acquire(callback); - }, - function(client,callback){ - client.query("SELECT * FROM list WHERE name = ?",[name],function(err,result){ - callback(err,result,client); - }); - }, - function(result,client,callback){ - pool.release(client); - callback(null,result); - } - ],cb); + pool.query("SELECT * FROM list WHERE name = ?",[name],cb); } this.AddAsync = function(data,cb){ var item = { @@ -311,20 +298,7 @@ function ProfileCollection() lastmodified:new Date(), etc:data.etc }; - async.waterfall([ - function(callback){ - pool.acquire(callback); - }, - function(client,callback){ - client.query("INSERT INTO list SET ?",[item],function(err,result){ - callback(err,result,client); - }); - }, - function(result,client,callback){ - pool.release(client); - callback(null,result); - } - ],cb); + pool.query("INSERT INTO list SET ?",[item],cb); } this.UpdatAsync = function(name,data,cb){ var item = { @@ -338,122 +312,22 @@ function ProfileCollection() lastmodified:new Date(), etc:data.etc }; - async.waterfall([ - function(callback){ - pool.acquire(callback); - }, - function(client,callback){ - client.query("UPDATE list SET ? WHERE name = ?",[item,name],function(err,result){ - callback(err,result,client); - }); - }, - function(result,client,callback){ - pool.release(client); - callback(null,result); - } - ],cb); + pool.query("UPDATE list SET ? WHERE name = ?",[item,name],cb); } this.ClearAsync = function(cb){ - async.waterfall([ - function(callback){ - pool.acquire(callback); - }, - function(client,callback){ - client.query("TRUNCATE TABLE list",function(err,result){ - callback(err,result,client); - }); - }, - function(result,client,callback){ - pool.release(client); - callback(null,result); - } - ],cb); + pool.query("TRUNCATE TABLE list",null,cb); } this.RemoveRangeAsync = function(names,cb){ - async.waterfall([ - function(callback){ - pool.acquire(callback); - }, - function(client,callback){ - var query = client.query("DELETE FROM list WHERE name IN (?)",[names],function(err,result){ - callback(err,result,client); - }); - }, - function(result,client,callback){ - pool.release(client); - callback(null,result); - } - ],cb); + pool.query("DELETE FROM list WHERE name IN (?)",[names],cb); } this.RemoveAsync = function(name,cb){ - async.waterfall([ - function(callback){ - pool.acquire(callback); - }, - function(client,callback){ - var query = client.query("DELETE FROM list WHERE name = ?",[name],function(err,result){ - callback(err,result,client); - }); - }, - function(result,client,callback){ - pool.release(client); - callback(null,result); - } - ],cb); + pool.query("DELETE FROM list WHERE name = ?",[name],cb); } this.FindByNameAsync = function(pattern,start,count,cb){ - async.waterfall([ - function(callback){ - pool.acquire(callback); - }, - function(client,callback){ - client.query("SELECT * FROM list WHERE name LIKE ? LIMIT ?,?",[pattern+"%",start,count],function(err,result){ - callback(err,result,client); - }); - }, - function(result,client,callback){ - pool.release(client); - callback(null,result); - } - ],cb); + pool.query("SELECT * FROM list WHERE name LIKE ? LIMIT ?,?",[pattern+"%",start,count],cb); } this.ToArrayAsync = function(start,count,cb){ - async.waterfall([ - function(callback){ - pool.acquire(callback); - }, - function(client,callback){ - client.query("SELECT * FROM list LIMIT ?,?",[start,count],function(err,result){ - callback(err,result,client); - }); - }, - function(result,client,callback){ - pool.release(client); - callback(null,result); - } - ],cb); + pool.query("SELECT * FROM list LIMIT ?,?",[start,count],cb); } } -function MySQLPool() -{ - var generic_pool = require("generic-pool"); - var mysql = require("mysql"); - return generic_pool.Pool({ - name : "mysql", - max : 10, - create : function(cb){ - var connection = mysql.createConnection({ - host : "localhost", - user : $db_user, - password : $db_password, - database : "profile", - }); - connection.connect(); - cb(null,connection); - }, - destroy : function(db){ - db.end(); - } - }); -}