nodejs连接postgresql_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);.

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值