IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Node.js访问PostgreSQL的注意事项笔记 -> 正文阅读

[大数据]Node.js访问PostgreSQL的注意事项笔记

Node.js访问PostgreSQL的注意事项笔记

在操作node.js脚本访问PostgreSQL数据库时,使用INSERT和UPDATE功能未成功,调整后操作成功,笔记以记录。

前序

NODE.JS加载pg模块,访问PostgreSQL数据库,数据库连接和查询功能都正常,使用插入记录INSERT和修改记录UPDATE时,报告找不到字段。
在这里插入图片描述

问题分析和解决

数据库里原本配置的字段名采用的都是大写,如:
在这里插入图片描述
测试脚本为:

var pg = require('pg');

var conString = "tcp://postgres:test@localhost/postgres"; 
var client =  new pg.Client(conString);      

client.connect(function(error, results){
  if (error) {
    console.log('clientConnectionReady Error:'+error.message);
    client.end();
    return;
  }
  else{
	console.log('connection success...\n');
    
                      setTimeout(function(){
                           client.query("INSERT INTO dbtest (SN, NAME, PROP) VALUES('20220002', 'demo', '')", function (err, result) {
                              if (err) {
                                 return console.error('error running query', err);
                              }
                            console.log(result);
                          });
    
                      },1000) ;
       
	return;  
  }  

});

从报错信息看到,报告字段找不到时,提及的是小写的字段名,而数据库中配置的是大写的字段名,因此推测是不是pg模块与PostgreSQL的配合问题,首先将数据库里的字段名改为小写:
在这里插入图片描述
调整脚本为:

var pg = require('pg');

var conString = "tcp://postgres:test@localhost/postgres"; 
var client =  new pg.Client(conString);      

client.connect(function(error, results){
  if (error) {
    console.log('clientConnectionReady Error:'+error.message);
    client.end();
    return;
  }
  else{
	console.log('connection success...\n');
    
                      setTimeout(function(){
                           client.query("INSERT INTO dbtest (sn, name, prop) VALUES('20220002', 'demo', '')", function (err, result) {
                              if (err) {
                                 return console.error('error running query', err);
                              }
                            console.log(result);
                          });
    
                      },1000) ;
       
	return;  
  }  

});

然后问题解决,插入记录成功,这里插入记录的脚本语句是双引号内包单引号。
在这里插入图片描述

注意事项

上面提及了用Node.js pg模块访问PostgreSQL,表格字段名需要为小写的问题。
有另外一个注意事项需要留意,在使用插入记录语句时,相同内容的脚本,采用单引号内包双引号产生访问失败:

var pg = require('pg');

var conString = "tcp://postgres:test@localhost/postgres"; 
var client =  new pg.Client(conString);      

client.connect(function(error, results){
  if (error) {
    console.log('clientConnectionReady Error:'+error.message);
    client.end();
    return;
  }
  else{
	console.log('connection success...\n');
    
                      setTimeout(function(){
                           client.query('INSERT INTO dbtest (sn, name, prop) VALUES("20220002", "demo", "null")', function (err, result) {
                              if (err) {
                                 return console.error('error running query', err);
                              }
                            console.log(result);
                          });
    
                      },1000) ;
       
	return;  
  }  

});

在这里插入图片描述
而如前所述,采用双引号内包单引号,则没有问题。
而对于查询语句,则单引号内包双引号没有问题,如:

            client.query('SELECT "sn", "name" FROM "dbtest"', function (err, result) {
               if (err) {
                   return console.error('error running query', err);
               }
                  console.log(result);
             });

因此,在使用Node.js的pg模块访问PostgreSQL数据库时,需要留意字段名和双引号单引号包含顺序问题。

–End–

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-01-03 16:10:38  更:2022-01-03 16:13:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 13:44:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码