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


Posted in NodeJs onFebruary 20, 2019

基于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 相关文章推荐
NodeJS url验证(url-valid)的使用方法
Nov 18 NodeJs
NodeJS的url截取模块url-extract的使用实例
Nov 18 NodeJs
Nodejs异步回调的优雅处理方法
Sep 25 NodeJs
Nodejs实现的一个简单udp广播服务器、客户端
Sep 25 NodeJs
深入浅析NodeJs并发异步的回调处理
Dec 21 NodeJs
NodeJs的优势和适合开发的程序
Aug 14 NodeJs
NodeJS配置HTTPS服务实例分享
Feb 19 NodeJs
使用Nodejs连接mongodb数据库的实现代码
Aug 21 NodeJs
nodejs多版本管理总结
Apr 03 NodeJs
nodejs nedb 封装库与使用方法示例
Feb 06 NodeJs
nodejs使用socket5进行代理请求的实现
Feb 21 NodeJs
nodejs使用Sequelize框架操作数据库的实现
Oct 21 NodeJs
深入理解nodejs搭建静态服务器(实现命令行)
Feb 05 #NodeJs
Nodejs实现的操作MongoDB数据库功能完整示例
Feb 02 #NodeJs
基于Koa(nodejs框架)对json文件进行增删改查的示例代码
Feb 02 #NodeJs
用Electron写个带界面的nodejs爬虫的实现方法
Jan 29 #NodeJs
NVM安装nodejs的方法实用步骤
Jan 16 #NodeJs
nodeJS进程管理器pm2的使用
Jan 09 #NodeJs
NodeJS模块与ES6模块系统语法及注意点详解
Jan 04 #NodeJs
You might like
星际初学者游戏中永远要做的事
2020/03/04 星际争霸
我的论坛源代码(八)
2006/10/09 PHP
php XPath对XML文件查找及修改实现代码
2011/07/27 PHP
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
2014/06/12 PHP
ThinkPHP实现将SESSION存入MYSQL的方法
2014/07/22 PHP
PHP新特性之字节码缓存和内置服务器
2017/08/11 PHP
js 获取中文拼音,Select自动匹配字母获取值的代码
2009/09/23 Javascript
可以将word转成html的js代码
2010/04/11 Javascript
JavaScript Date对象 日期获取函数
2010/12/19 Javascript
初学js插入节点appendChild insertBefore使用方法
2011/07/04 Javascript
JS之Date对象和获取系统当前时间详解
2014/01/13 Javascript
document.write的几点使用心得
2014/05/14 Javascript
简化版手机端照片预览组件
2015/04/13 Javascript
JavaScript实现的经典文件树菜单效果
2015/09/08 Javascript
jQuery实现简单的图片查看器
2020/09/11 Javascript
JavaScript代码实现左右上下自动晃动自动移动
2016/04/08 Javascript
jQuery的deferred对象使用详解
2016/09/25 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
Javascript前端经典的面试题及答案
2017/03/14 Javascript
jQuery ajax调用webservice注意事项
2017/10/08 jQuery
vue 纯js监听滚动条到底部的实例讲解
2018/09/03 Javascript
vue配置接口域名方法总结
2019/05/12 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
vue基于v-charts封装双向条形图的实现代码
2019/12/09 Javascript
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
Python基于xlrd模块操作Excel的方法示例
2018/06/21 Python
django orm模块中的 is_delete用法
2020/05/20 Python
请写出 float x 与"零值"比较的 if 语句
2016/01/04 面试题
青春励志演讲稿
2014/04/29 职场文书
2014银行授权委托书样本
2014/10/04 职场文书
文明单位创建材料
2014/12/24 职场文书
长城导游词
2015/01/30 职场文书
2016医师资格考试考生诚信考试承诺书
2016/03/25 职场文书
《最后一头战象》读后感:动物也有感情
2020/01/02 职场文书
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python
Python 中面向接口编程
2022/05/20 Python