Nodejs对postgresql基本操作的封装方法

基于nodejs平台对postgresql的增删改查基本操作进行了封装,能满足基本的实际应用,比较复杂的SQL需另外实现。

PG.js文件如下:

var pg = require('pg');

var conString = "postgres://username:password@localhost/databasename";

var client = new pg.Client(conString);

var PG = function(){

console.log("准备向****数据库连接...");

};

PG.prototype.getConnection = function(){

client.connect(function (err) {

if (err) {

return console.error('could not connect to postgres', err);

}

client.query('SELECT NOW() AS "theTime"', function (err, result) {

if (err) {

return console.error('error running query', err);

}

console.log("hbdfxt数据库连接成功...");

});

});

};

// 查询函数

//@param str 查询语句

//@param value 相关值

//@param cb 回调函数

var clientHelper = 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();

}

});

}

//增

//@param tablename 数据表名称

//@param fields 更新的字段和值,json格式

//@param cb 回调函数

PG.prototype.save = function(tablename,fields,cb){

if(!tablename) return;

var str = "insert into "+tablename+"(";

var field = [];

var value = [];

var num = [];

var count = 0;

for(var i in fields){

count++;

field.push(i);

value.push(fields[i]);

num.push("$"+count);

}

str += field.join(",") +") values("+num.join(",")+")";

clientHelper(str,value,cb);

};

//删除

//@param tablename 数据表名称

//@param fields 条件字段和值,json格式

//@param cb 回调函数

PG.prototype.remove = function(tablename,fields,cb){

if(!tablename) return;

var str = "delete from "+tablename+" where ";

var field = [];

var value = [];

var count = 0;

for(var i in fields){

count++;

field.push(i+"=$" +count);

value.push(fields[i]);

}

str += field.join(" and ");

clientHelper(str,value,cb);

}

//修改

//@param tablename 数据表名称

//@param fields 更新的字段和值,json格式

//@param mainfields 条件字段和值,json格式

PG.prototype.update = function(tablename,mainfields,fields,cb){

if(!tablename) return;

var str = "update "+tablename+" set ";

var field = [];

var value = [];

var count = 0;

for(var i in fields){

count++;

field.push(i+"=$"+count);

value.push(fields[i]);

}

str += field.join(",") +" where ";

field = [];

for(var j in mainfields){

count++;

field.push(j+"=$"+count);

value.push(mainfields[j]);

}

str += field.join(" and ");

clientHelper(str,value,cb);

}

//查询

//@param tablename 数据表名称

//@param fields 条件字段和值,json格式

//@param returnfields 返回字段

//@param cb 回调函数

PG.prototype.select = function(tablename,fields,returnfields,cb){

if(!tablename) return;

var returnStr = "";

if(returnfields.length == 0)

returnStr = '*';

else

returnStr= returnfields.join(",");

var str = "select "+returnStr+ " from "+tablename+" where ";

var field = [];

var value = [];

var count = 0;

for(var i in fields){

count++;

field.push(i+"=$"+count);

value.push(fields[i]);

}

str += field.join(" and ");

clientHelper(str,value,cb);

};

module.exports = new PG();

用法很简单,如下:

var pgclient = require('./PG');// 引用上述文件

pgclient.getConnection();

// 调用上述四个函数即可

pgclient.save('userinfo',{'name': admin},cb);<span style="font-family: Arial, Helvetica, sans-serif;">.</span>

以上这篇Nodejs对postgresql基本操作的封装方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

以上是 Nodejs对postgresql基本操作的封装方法 的全部内容, 来源链接: utcz.com/z/357429.html

回到顶部