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实现批量下载妹纸图
May 28 NodeJs
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
Jul 26 NodeJs
nodejs读写json文件的简单方法(必看)
Mar 09 NodeJs
简单好用的nodejs 爬虫框架分享
Mar 26 NodeJs
详解nodejs express下使用redis管理session
Apr 24 NodeJs
ubuntu编译nodejs所需的软件并安装
Sep 12 NodeJs
nodejs中Express与Koa2对比分析
Feb 06 NodeJs
nodejs读取并去重excel文件
Apr 22 NodeJs
NodeJs项目中关闭ESLint的方法
Aug 09 NodeJs
nodejs中方法和模块用法示例
Dec 24 NodeJs
NodeJs 模仿SIP话机注册的方法
Jun 21 NodeJs
nodejs读取图片返回给浏览器显示
Jul 25 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年10月第2期TV动画制作组换血!
2020/03/06 日漫
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
PHP闭包定义与使用简单示例
2018/04/13 PHP
PHP中Session ID的实现原理实例分析
2019/08/17 PHP
详解laravel passport OAuth2.0的4种模式
2019/11/04 PHP
文本框输入时 实现自动提示(像百度、google一样)
2012/04/05 Javascript
JS禁用浏览器退格键实现思路及代码
2013/10/29 Javascript
node.js中的fs.realpath方法使用说明
2014/12/16 Javascript
jQuery中:button选择器用法实例
2015/01/04 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
JS实现从连接中获取youtube的key实例
2015/07/02 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
jquery mobile 移动web(5)
2015/12/20 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
AngularJS入门教程之REST和定制服务详解
2016/08/19 Javascript
vue页面使用阿里oss上传功能的实例(二)
2017/08/09 Javascript
纯JS实现出生日期[年月日]下拉菜单效果
2018/06/01 Javascript
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
JSON生成Form表单的方法示例
2018/11/21 Javascript
Next.js实现react服务器端渲染的方法示例
2019/01/06 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
2014/08/22 Python
点球小游戏python脚本
2018/05/22 Python
python数据挖掘需要学的内容
2019/06/23 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
一文带你掌握Pyecharts地理数据可视化的方法
2021/02/06 Python
美国专营婴幼儿用品的购物网站:buybuy BABY
2017/01/01 全球购物
印度服装购物网站:Limeroad
2018/09/26 全球购物
澳大利亚家具商店:Freedom
2020/12/17 全球购物
学习雷锋精神演讲稿
2014/05/10 职场文书
民间个人借款协议书
2014/09/30 职场文书
高校自主招生自荐信2015
2015/03/04 职场文书
canvas 中如何实现物体的框选
2022/08/05 Javascript