OSDN Git Service

mysql_poolクラスを別のファイルに分離した
authorkonekoneko <jbh03215@hotmail.co.jp>
Fri, 16 Nov 2012 10:40:50 +0000 (19:40 +0900)
committerkonekoneko <jbh03215@hotmail.co.jp>
Fri, 16 Nov 2012 10:40:50 +0000 (19:40 +0900)
mysql_pool.js [new file with mode: 0644]
profile.js

diff --git a/mysql_pool.js b/mysql_pool.js
new file mode 100644 (file)
index 0000000..95ff102
--- /dev/null
@@ -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();
+               }
+       });
+}
index d838ade..8fef58b 100644 (file)
@@ -263,41 +263,28 @@ function RenderMessage(res,msg,info)
 //\r
 function ProfileCollection()\r
 {\r
-       var pool = new MySQLPool();\r
+       var MySQLPool = new require("./mysql_pool.js");\r
+       var pool = new MySQLPool({\r
+                               host     : "localhost",\r
+                               user     : $db_user,\r
+                               password : $db_password,\r
+                               database : "profile",\r
+                       });\r
        this.AuthAsync = function(name,password,cb){\r
                async.waterfall([\r
-                       function(callback){\r
-                               pool.acquire(callback);\r
-                       },\r
-                       function(client,callback){\r
-                               client.query("SELECT * FROM list WHERE name = ?",[name],function(err,result){\r
-                                       callback(err,result,client);\r
-                               });\r
+                       function(next){\r
+                               pool.query("SELECT * FROM list WHERE name = ?",[name],next);\r
                        },\r
-                       function(result,client,callback){\r
-                               pool.release(client);\r
+                       function(result,next){\r
                                if(result[0].password == password)\r
-                                       callback(null,true);\r
+                                       next(null,true);\r
                                else\r
-                                       callback(null,false);\r
+                                       next(null,false);\r
                        }\r
                ],cb);\r
        }\r
        this.GetAsync = function(name,cb){\r
-               async.waterfall([\r
-                       function(callback){\r
-                               pool.acquire(callback);\r
-                       },\r
-                       function(client,callback){\r
-                               client.query("SELECT * FROM list WHERE name = ?",[name],function(err,result){\r
-                                       callback(err,result,client);\r
-                               });\r
-                       },\r
-                       function(result,client,callback){\r
-                               pool.release(client);\r
-                               callback(null,result);\r
-                       }\r
-               ],cb);\r
+               pool.query("SELECT * FROM list WHERE name = ?",[name],cb);\r
        }\r
        this.AddAsync = function(data,cb){\r
                var item = {\r
@@ -311,20 +298,7 @@ function ProfileCollection()
                        lastmodified:new Date(),\r
                        etc:data.etc\r
                };\r
-               async.waterfall([\r
-                       function(callback){\r
-                               pool.acquire(callback);\r
-                       },\r
-                       function(client,callback){\r
-                               client.query("INSERT INTO list SET ?",[item],function(err,result){\r
-                                       callback(err,result,client);\r
-                               });\r
-                       },\r
-                       function(result,client,callback){\r
-                               pool.release(client);\r
-                               callback(null,result);\r
-                       }\r
-               ],cb);\r
+               pool.query("INSERT INTO list SET ?",[item],cb);\r
        }\r
        this.UpdatAsync = function(name,data,cb){\r
                var item = {\r
@@ -338,122 +312,22 @@ function ProfileCollection()
                        lastmodified:new Date(),\r
                        etc:data.etc\r
                };\r
-               async.waterfall([\r
-                       function(callback){\r
-                               pool.acquire(callback);\r
-                       },\r
-                       function(client,callback){\r
-                               client.query("UPDATE list SET ? WHERE name = ?",[item,name],function(err,result){\r
-                                       callback(err,result,client);\r
-                               });\r
-                       },\r
-                       function(result,client,callback){\r
-                               pool.release(client);\r
-                               callback(null,result);\r
-                       }\r
-               ],cb);\r
+               pool.query("UPDATE list SET ? WHERE name = ?",[item,name],cb);\r
        }\r
        this.ClearAsync = function(cb){\r
-               async.waterfall([\r
-                       function(callback){\r
-                               pool.acquire(callback);\r
-                       },\r
-                       function(client,callback){\r
-                               client.query("TRUNCATE TABLE list",function(err,result){\r
-                                       callback(err,result,client);\r
-                               });\r
-                       },\r
-                       function(result,client,callback){\r
-                               pool.release(client);\r
-                               callback(null,result);\r
-                       }\r
-               ],cb);\r
+               pool.query("TRUNCATE TABLE list",null,cb);\r
        }\r
        this.RemoveRangeAsync = function(names,cb){\r
-               async.waterfall([\r
-                       function(callback){\r
-                               pool.acquire(callback);\r
-                       },\r
-                       function(client,callback){\r
-                               var query = client.query("DELETE FROM list WHERE name IN (?)",[names],function(err,result){\r
-                                       callback(err,result,client);\r
-                               });\r
-                       },\r
-                       function(result,client,callback){\r
-                               pool.release(client);\r
-                               callback(null,result);\r
-                       }\r
-               ],cb);\r
+               pool.query("DELETE FROM list WHERE name IN (?)",[names],cb);\r
        }\r
        this.RemoveAsync = function(name,cb){\r
-               async.waterfall([\r
-                       function(callback){\r
-                               pool.acquire(callback);\r
-                       },\r
-                       function(client,callback){\r
-                               var query = client.query("DELETE FROM list WHERE name = ?",[name],function(err,result){\r
-                                       callback(err,result,client);\r
-                               });\r
-                       },\r
-                       function(result,client,callback){\r
-                               pool.release(client);\r
-                               callback(null,result);\r
-                       }\r
-               ],cb);\r
+               pool.query("DELETE FROM list WHERE name = ?",[name],cb);\r
        }\r
        this.FindByNameAsync = function(pattern,start,count,cb){\r
-               async.waterfall([\r
-                       function(callback){\r
-                               pool.acquire(callback);\r
-                       },\r
-                       function(client,callback){\r
-                               client.query("SELECT * FROM list WHERE name LIKE ? LIMIT ?,?",[pattern+"%",start,count],function(err,result){\r
-                                       callback(err,result,client);\r
-                               });\r
-                       },\r
-                       function(result,client,callback){\r
-                               pool.release(client);\r
-                               callback(null,result);\r
-                       }\r
-               ],cb);\r
+               pool.query("SELECT * FROM list WHERE name LIKE ? LIMIT ?,?",[pattern+"%",start,count],cb);\r
        }\r
        this.ToArrayAsync = function(start,count,cb){\r
-               async.waterfall([\r
-                       function(callback){\r
-                               pool.acquire(callback);\r
-                       },\r
-                       function(client,callback){\r
-                               client.query("SELECT * FROM list LIMIT ?,?",[start,count],function(err,result){\r
-                                       callback(err,result,client);\r
-                               });\r
-                       },\r
-                       function(result,client,callback){\r
-                               pool.release(client);\r
-                               callback(null,result);\r
-                       }\r
-               ],cb);\r
+               pool.query("SELECT * FROM list LIMIT ?,?",[start,count],cb);\r
        }\r
 }\r
 \r
-function MySQLPool()\r
-{\r
-       var generic_pool = require("generic-pool");\r
-       var mysql      = require("mysql");\r
-       return generic_pool.Pool({\r
-               name : "mysql",\r
-               max : 10,\r
-               create : function(cb){\r
-                       var connection = mysql.createConnection({\r
-                               host     : "localhost",\r
-                               user     : $db_user,\r
-                               password : $db_password,\r
-                               database : "profile",\r
-                       });\r
-                       connection.connect();\r
-                       cb(null,connection);\r
-               },\r
-               destroy : function(db){\r
-                       db.end();\r
-               }\r
-       });\r
-}\r