Nodejs对postgresql基本操作的封装方法
基于nodejs平台对postgresql的增删改查基本操作进行了封装,能满足基本的实际应用,比较复杂的SQL需另外实现。
PG.js文件如下:
varpg=require('pg'); varconString="postgres://username:password@localhost/databasename"; varclient=newpg.Client(conString); varPG=function(){ console.log("准备向****数据库连接..."); }; PG.prototype.getConnection=function(){ client.connect(function(err){ if(err){ returnconsole.error('couldnotconnecttopostgres',err); } client.query('SELECTNOW()AS"theTime"',function(err,result){ if(err){ returnconsole.error('errorrunningquery',err); } console.log("hbdfxt数据库连接成功..."); }); }); }; //查询函数 //@paramstr查询语句 //@paramvalue相关值 //@paramcb回调函数 varclientHelper=function(str,value,cb){ client.query(str,value,function(err,result){ if(err){ cb("err"); } else{ if(result.rows!=undefined) cb(result.rows); else cb(); } }); } //增 //@paramtablename数据表名称 //@paramfields更新的字段和值,json格式 //@paramcb回调函数 PG.prototype.save=function(tablename,fields,cb){ if(!tablename)return; varstr="insertinto"+tablename+"("; varfield=[]; varvalue=[]; varnum=[]; varcount=0; for(variinfields){ count++; field.push(i); value.push(fields[i]); num.push("$"+count); } str+=field.join(",")+")values("+num.join(",")+")"; clientHelper(str,value,cb); }; //删除 //@paramtablename数据表名称 //@paramfields条件字段和值,json格式 //@paramcb回调函数 PG.prototype.remove=function(tablename,fields,cb){ if(!tablename)return; varstr="deletefrom"+tablename+"where"; varfield=[]; varvalue=[]; varcount=0; for(variinfields){ count++; field.push(i+"=$"+count); value.push(fields[i]); } str+=field.join("and"); clientHelper(str,value,cb); } //修改 //@paramtablename数据表名称 //@paramfields更新的字段和值,json格式 //@parammainfields条件字段和值,json格式 PG.prototype.update=function(tablename,mainfields,fields,cb){ if(!tablename)return; varstr="update"+tablename+"set"; varfield=[]; varvalue=[]; varcount=0; for(variinfields){ count++; field.push(i+"=$"+count); value.push(fields[i]); } str+=field.join(",")+"where"; field=[]; for(varjinmainfields){ count++; field.push(j+"=$"+count); value.push(mainfields[j]); } str+=field.join("and"); clientHelper(str,value,cb); } //查询 //@paramtablename数据表名称 //@paramfields条件字段和值,json格式 //@paramreturnfields返回字段 //@paramcb回调函数 PG.prototype.select=function(tablename,fields,returnfields,cb){ if(!tablename)return; varreturnStr=""; if(returnfields.length==0) returnStr='*'; else returnStr=returnfields.join(","); varstr="select"+returnStr+"from"+tablename+"where"; varfield=[]; varvalue=[]; varcount=0; for(variinfields){ count++; field.push(i+"=$"+count); value.push(fields[i]); } str+=field.join("and"); clientHelper(str,value,cb); }; module.exports=newPG();
用法很简单,如下:
varpgclient=require('./PG');//引用上述文件 pgclient.getConnection(); //调用上述四个函数即可 pgclient.save('userinfo',{'name':admin},cb);.
以上这篇Nodejs对postgresql基本操作的封装方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。