CNode

发一个基于mysql2和async库的小模块,希望各位大神纠正错误

CCatalystDP发布于13 年前最后回复13 年前5 回复4643 浏览0 收藏

var mysql = require('mysql2'); var async = require('async');

var sqlFun=function(){}; sqlFun.prototype.setupConnection=function(info){ this.connection=mysql.createConnection({ host:info.host, user:info.user, password:info.password, database:info.database }); };//与Mysql建立连接

sqlFun.prototype.selectSql=function(sqlSentence,returnResult){ console.log("start select"); var that=this; that.connection.query(sqlSentence,function(err,rows){ returnResult(rows); }); }; //查询的函数,resultResult返回查询到的结果

sqlFun.prototype.insertSql=function(sql,returnResult){ var connection=this.connection; async.waterfall([function(callback){ connection.query(sql,function(err,rows){ if(!err) callback(null,'true'); else { callback(err,'false'); } }); }], function(err,result){ console.log("insert error:"+err); returnResult(result); }); };//插入操作函数,returnResult函数返回状态值

sqlFun.prototype.deleteSql=function(sql,callbackResult){ var that=this; async.waterfall([function(callback){ that.connection.query(sql,function(err,rows){ var result=err? err:false; callback(null,result); }); }],function(err,result){ callbackResult(result); }); };//删除操作,callbackResult返回状态

sqlFun.prototype.closeConnection=function(callback){ console.log("end connection"); this.connection.end(function(err){ callback(err); }); };//断开数据库连接,callback返回错误信息; module.exports=sqlFun;

使用方法: var sqlFun=require('./保存的js的文件名'); var useSql=new sqlFun(); useSql.setUpConnection([Object]);传入的对象包括数据库连接用户名、密码、主机名、数据库名 useSql.selectSql([string],[callback]);//string传入标准数据库语句,callback回调函数用来返回数据库操作的结果;

查看回复

回复 (5)

L
leizongmin#1·13 年前
R
ringtail#2·13 年前
引用 ringtail代码太长了,先说说是干啥的

@CatalystDP 哦,了解,一会研究下,谢啦

R
ringtail#4·13 年前

代码太长了,先说说是干啥的

C
CatalystDP#5·13 年前
引用 ringtail代码太长了,先说说是干啥的

就是把一些数据库常用的操作给封装起来了,中间用了async库的waterfall流程控制,每次调用实例化对象的函数如useSql.selectSql([sting],[callback])第一个参数传入的sql语句,第二个参数传入一个回调函数来返回数据库查询的结果

参与回复
登录后即可参与回复。登录