在Node.js项目中使用node-postgres连接postgres以及报错指南

news2024/11/22 5:57:52

什么是node-postgres

官方文档
nodepostgres是node.js模块的集合,用于与PostgreSQL数据库接口。它支持回调、promise、async/await、连接池、准备好的语句、游标、流式结果、C/C++绑定、富类型解析等等!就像PostgreSQL本身一样,它有很多功能:本文档旨在让您快速、正确地运行。它还试图为更高级和边缘案例主题提供指南,使您能够从node.js充分利用PostgreSQL的功能。

如何使用它?

下载依赖
npm install pg

执行语句

import { Client } from 'pg'

const client = new Client({
  host: 'my.database-server.com',
  port: 5334,
  database: 'database-name',
  user: 'database-user',
  password: 'secretpassword!!',
})
await client.connect()
 
const res = await client.query('SELECT $1::text as message', ['Hello world!'])
console.log(res.rows[0].message) // Hello world!
await client.end()

问题解决汇总

报错1:postgres db报错"err":{“type”:“DatabaseError”,“message”:“column “xxx报错点xxx” does not exist”,

"err":{"type":"DatabaseError","message":"column \"xxx报错点xxx\" does not exist",

解决方案

遇到这种报错,八成是你的sql句子拼的有问题,仔细检查去吧
举个栗子:

const insertApp = await client.query(`INSERT INTO applications 
              (app_name ) 
              VALUES 
              ('${validResult.appName}') 
              ON CONFLICT (app_name) 
              DO NOTHING;
              `);
建议改成下面的写法
  • node-postgres参考文档
  • 字符串连接参数直接到查询文本可能(而且经常)导致sql注入漏洞。
  • node-postgres支持参数化查询,将查询文本和参数原原原本地传递给PostgreSQL服务器,更为安全
  • 如果参数化null和undefined,则两者都将被转换为null。
const text = 'INSERT INTO users(name, email) VALUES($1, $2) RETURNING *'
const values = ['brianc', 'brian.m.carlson@gmail.com']
 
const res = await client.query(text, values)
今天就写到这里啦~
  • 小伙伴们,( ̄ω ̄( ̄ω ̄〃 ( ̄ω ̄〃)ゝ我们明天再见啦~~
  • 大家要天天开心哦

欢迎大家指出文章需要改正之处~
学无止境,合作共赢

在这里插入图片描述

欢迎路过的小哥哥小姐姐们提出更好的意见哇~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1092447.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

下载Python的不同版本在同一台电脑上如何共存

1. 下载安装不同版本的Python 官网下载:https://www.python.org/downloads/安装自己需要的版本(我这里以Python3.6和Python3.9为例,下载安装细节不过多赘述) (这里的安装路径自己设定,命名最好是根据下载…

【MySQL】事务四大特性ACID、并发事务问题、事务隔离级别

🐌个人主页: 🐌 叶落闲庭 💨我的专栏:💨 c语言 数据结构 javaEE 操作系统 Redis 石可破也,而不可夺坚;丹可磨也,而不可夺赤。 MySQL 一、事务四大特性ACID1.1 原子性1.2 …

深入探究基于发布/订阅模式的轻量级消息传输协议 MQTT

目录 1、什么是 MQTT? 1.1、MQTT 与 HTTP 比较 1.2、 MQTT 与 XMPP 比较 2、MQTT 可以干啥? 3、 MQTT 协议特性详解 3.1、轻量高效,节省带宽 3.2、可靠的消息传递 3.3、海量连接支持 3.4、安全的双向通信 3.5、在线状态感知 4、MQ…

【数据库系统概论】第四章数据库安全性

数据库的安全性:保护数据库以防止不合法使用所造成的数据泄露、更改或破坏 grant和revoke语法

如何定制化跑腿小程序源码

跑腿小程序源码为您提供了一个强大的起点,但要创建一个成功的本地服务平台,您通常需要对源码进行定制化。这篇文章将介绍如何定制化跑腿小程序源码,包括添加新功能、修改界面和优化用户体验。 选择合适的跑腿小程序源码 首先,您…

边坡监测系统:全天监测、智能预警

边坡指的是为保证路基稳定,在路基两侧做成的具有一定坡度的坡面。边坡工程稳定性会被很多因素应用,具体可分为内在因素和外在因素进行分析。组成边坡的岩土体类型及性质、边坡地质构造、边坡形态、地下水等:外部因素包括:振动作用、气候条件、…

新式茶饮品牌如何写出生活感软文

居民消费水平的提升使新式茶饮品牌的市场不断扩张,在竞争激烈的茶饮市场中,品牌提高知名度的主要方式之一就是软文营销,而生活感软文是茶饮软文中较为常见的类型,它能有效拉进品牌与消费者之间的距离,那么新式茶饮品牌…

0:node的安装与环境配置

转载:https://blog.csdn.net/liu_1823/article/details/132987003 ** node.js安装 ** 下载地址:https://nodejs.org/en 下载第一个18.18.2 接下来的安装步骤直接都安装到C盘下面,一直点next就行。最后finish。 ** 配置环境变量 ** 完成了…

计算机网络 实验三 VLAN(数据链路层)

实验目的: 通过实验掌握下列知识: 1 了解VLAN划分的方法,并掌握基于端口划分VLAN。 2 掌握基于Access、Trunk和Hybrid端口的VLAN应用。 实验环境 : 1 H3C Cloud Lab应用程序。 2 H3C路由交换实验拓扑。 实验过程分析&#xf…

PowerShell系列(十二):PowerShell Cmdlet高级参数介绍(二)

目录 1、ErrorVariable 错误变量 2、OutVariable 结果输出 3、OutBuffer 输出Buffer定义 4、PipelineVariable管道参数 今天给大家讲解PowerShell Cmdlet高级参数第二部分相关的知识,希望对大家学习PowerShell能有所帮助! 1、ErrorVariable 错误变量…

小程序 | 小程序后端用什么语言开发比较好

目录 ♣️ 引言 选择合适的后端语言 推荐使用Node.js Node.js 的优点 其他备选语言 ♣️ 小结 ♣️ 引言 小程序的兴起已经成为了当今移动互联网时代的热点之一,而小程序后端的好坏直接影响着小程序的使用体验,因此,选择一种好的语言来…

微信小程序 ——入门介绍及简单的小程序编写

14天阅读挑战赛自己决定的事情,就要不动声色的一往直前! 目录 一、小程序入门 1.1 什么是小程序 1.2 小程序的优点 1.3 小程序注册 1.4 安装开发工具 1.5 创建第一个小程序 二、小程序目录结构及入门案例 2.1 目录结构 2.2 入门案例 2.2.1 创建…

【Pytorch】pytorch中保存模型的三种方式

【Pytorch】pytorch中保存模型的三种方式 文章目录 【Pytorch】pytorch中保存模型的三种方式1. torch保存模型相关的api1.1 torch.save()1.2 torch.load()1.3 torch.nn.Module.load_state_dict()1.4 什么是state_dict()1.4. 1 举个例子 2. pytorch模型文件后缀3. 存储整个模型3…

【2024波哥讲言语视频全套】

2024波哥讲言语视频全套 有需要的同学可以通过百度网盘下载 通过百度网盘分享的文件:【38】2024… 链接:https://pan.baidu.com/s/10GMG9tu8RGrXuU2uJWaysw?pwdfpl6 提取码:fpl6 复制这段内容打开「百度网盘APP 即可获取」

PHP家教系统平台源码/请家教兼职家教网源码/自适应手机端/实测

源码简介: PHP家教系统平台源码/请家教兼职家教网源码/自适应实测,它支持兼职家教和请家教两种模式。该程序提供了完整的功能,包括家教信息发布、家教需求发布、信息匹配、在线支付等。此外,该程序还可以自适应手机端&#xff0c…

CSS之排列系列--顶部导航栏ul、li居中展示的方法

原文网址:CSS之排列系列--顶部导航栏ul、li居中展示的方法_IT利刃出鞘的博客-CSDN博客 简介 说明 本文介绍CSS顶部导航栏ul、li居中展示的方法。 核心方法 ul的父层使用:text-align: center ul元素使用:display: inline-block; 示例 …

C++ 反向迭代器

反向迭代器的即正向迭代器的--,反向迭代器的--即正向迭代器的,反向迭代器和正向迭代器的很多功能都是相似的,因此我们可以复用正向迭代器作为反向迭代器的底层容器来封装,从而实现出反向迭代器,即:反向迭代…

Linux 文件系统逻辑结构图的解释

task_struct进程结构体,表示一个运行的进程。 task_struct中的fs指向fs_struct结构体。fs_struct表示这个进程支持的文件系统。 root指向根目录dentry,dentry中的d_inode指向改进程根目录在存储设备中的inode节点。 pwd指向当前进程所在的目录结构体den…

部署k8s dashboard(这里使用Kubepi)

9. 部署k8s dashboard(这里使用Kubepi) Kubepi是一个简单高效的k8s集群图形化管理工具,方便日常管理K8S集群,高效快速的查询日志定位问题的工具 部署KubePI(随便在哪个节点部署,我这里在主节点部署&#…

记录单片机编码的坑

问题描述 在使用clion调试过程中,发现使用 mbstowcs函数转换后的数组仍为原数组 因而单片机中不能直接将ascii码(此处为编写代码的格式,例如GBK格式)转换为Unicode格式,这个Bug先记录下来,后续解决了再贴上方法!