最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Nodejs對postgresql基本操作的封裝方法

 更新時間:2019年02月20日 14:54:28   作者:cheneypao  
今天小編就為大家分享一篇Nodejs對postgresql基本操作的封裝方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

基于nodejs平臺對postgresql的增刪改查基本操作進行了封裝,能滿足基本的實際應用,比較復雜的SQL需另外實現(xiàn)。

PG.js文件如下:

var pg = require('pg');
var conString = "postgres://username:password@localhost/databasename";
var client = new pg.Client(conString);
 
var PG = function(){
 console.log("準備向****數(shù)據(jù)庫連接...");
};
 
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數(shù)據(jù)庫連接成功...");
 });
 });
};
 
// 查詢函數(shù)
//@param str 查詢語句
//@param value 相關值
//@param cb 回調(diào)函數(shù)
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 數(shù)據(jù)表名稱
//@param fields 更新的字段和值,json格式
//@param cb 回調(diào)函數(shù)
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 數(shù)據(jù)表名稱
//@param fields 條件字段和值,json格式
//@param cb 回調(diào)函數(shù)
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 數(shù)據(jù)表名稱
//@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 數(shù)據(jù)表名稱
//@param fields 條件字段和值,json格式
//@param returnfields 返回字段
//@param cb 回調(diào)函數(shù)
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();
 
// 調(diào)用上述四個函數(shù)即可
pgclient.save('userinfo',{'name': admin},cb);<span style="font-family: Arial, Helvetica, sans-serif;">.</span>

以上這篇Nodejs對postgresql基本操作的封裝方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • nodejs如何獲取當前連接的網(wǎng)絡ip

    nodejs如何獲取當前連接的網(wǎng)絡ip

    這篇文章主要介紹了nodejs如何獲取當前連接的網(wǎng)絡ip問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • npm下載慢或下載失敗問題解決的三種方法

    npm下載慢或下載失敗問題解決的三種方法

    這篇文章主要為大家介紹了npm下載慢或下載失敗問題解決的三種方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • nodejs中art-template模板語法的引入及沖突解決方案

    nodejs中art-template模板語法的引入及沖突解決方案

    本篇文章主要介紹了nodejs中art-template模板語法的引入及沖突解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • nodejs nedb 封裝庫與使用方法示例

    nodejs nedb 封裝庫與使用方法示例

    這篇文章主要介紹了nodejs nedb 封裝庫與使用方法,結合實例形式分析了nodejs nedb.js封裝庫的定義與使用技巧,需要的朋友可以參考下
    2020-02-02
  • 解析NodeJs的調(diào)試方法

    解析NodeJs的調(diào)試方法

    本文主要介紹了NodeJs調(diào)試的步驟,以及實例方法,具有一定的參考作用,需要的朋友可以看下
    2016-12-12
  • node使用crypto模塊為用戶密碼加密

    node使用crypto模塊為用戶密碼加密

    本文主要介紹了node使用crypto模塊為用戶密碼加密,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • 使用基于Node.js的構建工具Grunt來發(fā)布ASP.NET MVC項目

    使用基于Node.js的構建工具Grunt來發(fā)布ASP.NET MVC項目

    這篇文章主要介紹了使用基于Node.js的構建工具Grunt來發(fā)布ASP.NET MVC項目的教程,自動化構建工具Grunt具有編譯壓縮單元測試等功能,十分強大,需要的朋友可以參考下
    2016-02-02
  • NodeJs版本過高無法啟動Vue項目報錯的幾種解決方法

    NodeJs版本過高無法啟動Vue項目報錯的幾種解決方法

    在開發(fā)vue項目時,我們通常使用nodejs作為項目的運行環(huán)境,但是有時候,由于nodejs版本過高,可能會導致vue項目啟動報錯,這篇文章主要給大家介紹了關于NodeJs版本過高無法啟動Vue項目報錯的幾種解決方法,需要的朋友可以參考下
    2023-12-12
  • 使用express來代理服務的方法

    使用express來代理服務的方法

    這篇文章主要介紹了使用express來代理服務的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • Node.js圖片驗證碼識別功能

    Node.js圖片驗證碼識別功能

    現(xiàn)在越來越多的網(wǎng)站采取圖片驗證碼,防止機器惡意向服務端發(fā)送請求,但是常規(guī)的圖片驗證碼也不是非常安全了,有非常多第三方庫可以對圖片上的數(shù)字文字等進行識別,下面小編給大家分享Node.js圖片驗證碼識別功能實現(xiàn),感興趣的朋友一起看看吧
    2024-04-04

最新評論

桐梓县| 黄陵县| 汶川县| 淮阳县| 荃湾区| 五峰| 肃北| 铁岭市| 怀远县| 南充市| 平南县| 漳平市| 安徽省| 赞皇县| 灵璧县| 章丘市| 海宁市| 阿鲁科尔沁旗| 五峰| 丹阳市| 嘉峪关市| 利辛县| 专栏| 华安县| 绍兴县| 保山市| 迁安市| 泰宁县| 乌鲁木齐市| 正镶白旗| 马尔康县| 通州区| 金湖县| 东安县| 渝北区| 庆城县| 河北区| 新化县| 康马县| 上高县| 调兵山市|