//\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
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
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