使用nodejs操作postgresql

news2024/11/18 11:47:58

环境准备

1 navicat premium
2 postgresql 14

装完上述软件后,远程连接上之后如下:
在这里插入图片描述
自己建立一个用户表users,然后随机生成一些数据即可

步骤

这里我将项目放到了gticode里,可以下载下来使用
https://gitcode.net/wangbiao9292/nodejs-postgresql/-/tree/master

在这里插入图片描述
这里几个文件解释下:
1 node_modules 依赖
2 package-lock.json 锁定的版本
3 package.json 配置
4 pgsql.js postgresql用来连接数据库的配置
5 server.js 依赖express的配置

下面贴一下代码:
pgsql.js

var pg = require("pg");
class pgsql {
    pool;
    constructor() {
        this.pool = new pg.Pool({
            database: "demo", //数据库名称
            user: "postgres", //用户名
            password: "root", //密码
            port: 5432, //端口号
            // 扩展属性
            max: 20, // 连接池最大连接数
            idleTimeoutMillis: 3000 // 连接最大空闲时间 3s
        })
    }
    //查询数据
    searchData(sqlString,callback){
        this.pool.connect((err,client,done)=>{
            client.query(sqlString,(err,result)=>{
                console.log(result)
            })
        })
    }
}
module.exports = pgsql

server.js

const pgsql = require("./pgsql")
const express = require('express');
const app = express();
const port = 5422;

app.listen(port, () => console.log(`listening on http://localhost:${port}`));
 

/**
 * 根路径访问
 */
app.get("/",(req,res)=>{
    res.send("hello world")
})

/**
 * 获取用户表信息
 */
app.get("/user",(req,res)=>{
    var sqlString = "select * from users";
    var s = new pgsql();
    s.pool.connect((err,client,done)=>{
        client.query(sqlString,(err,result)=>{
            done();
            console.log(result.rows)
            res.send(result)
        })
    })
    
})

然后运行npm start
在这里插入图片描述
就可以通过接口取值了:
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

基于物联网、区块链技术的质量管控防伪溯源系统源码

一物一码防伪溯源系统能准确获取产品生产经营各个环节的真实信息,利用物联网、云计算 、区块链、人工智能、5G等先进技术,结合特有的码码关联和RSA加密验证技术,建立区块链的“身份证”,针对产品生长到销售各环节的质量安全数据进…

二、1什么是面向对象编程?

你好,我是程序员雪球,接下来与你一起学习什么是面向对象编程。 面向对象编程是一种编程风格。它以类或对象作为组织代码的基本单元,并将封装,抽象,继承,多态四个特性,作为代码设计的实现基石。 …

Spring Boot 中的 @RabbitListenerContainerFactory 注解

Spring Boot 中的 RabbitListenerContainerFactory 注解 1. 什么是 RabbitListenerContainerFactory 在 Spring Boot 中,我们可以使用 RabbitListener 注解来监听 RabbitMQ 中的消息。RabbitListener 注解会自动创建一个监听器容器,用于接收和处理消息…

Leetcode-每日一题【876.链表的中间结点】

题目 给你单链表的头结点 head ,请你找出并返回链表的中间结点。 如果有两个中间结点,则返回第二个中间结点。 示例 1: 输入:head [1,2,3,4,5]输出:[3,4,5]解释:链表只有一个中间结点,值为 3…

云贝餐饮连锁独立版 v2.6.1+公众号+小程序端+抖音端端+全插件免授权安装使用教程

云贝餐饮连锁版这系统应该持续做好多年了比较完善,以前的版本都需要授权一直没使用,整体测试下感觉从体验上还有逻辑设计上都非常不错,首页、会员中心支持DIY装修,配送支持多种平台对接,基本上餐饮行业需要的功能都能满…

Plant, Cell Environment:DAP-seq技术在ZmEREB57调控OPDA合成提高玉米耐盐性研究中的应用

茉莉酸类化合物(JAs)是植物中普遍存在的一类植物激素,在非生物胁迫响应中发挥重要作用。12-氧-植物二烯酸(OPDA)可通过α-亚麻酸(ALA)代谢途径合成JA,是一种重要的JA前体分子。APETA…

DNSPod十问朱智:为什么商场越来越像美食中心?

本期嘉宾 朱智 赢商tech副总裁 朱智,赢商tech副总裁兼首席产品官。线下大数据服务的领军人物,福布斯中国“30under30”人物,拥有10余年线下商业大数据服务经验,致力于商业地产数智化升级领域,服务了包括新城集团、新…

【Linux系统编程】Linux权限理解 及 权限管理

文章目录 前言1. Linux权限的概念2. Linux权限管理2.1 文件类型2.2 Linux用户分类及切换用户分类普通用户—>rootroot—>普通用户普通用户之间的切换单条指令的提权 2.3 用户角色划分/文件访问者的分类(人)2.4 文件类型和访问权限(事物…

windows环境部署nacos注意事项

1.nacos与 eureka部署方式有所不同,nacos需要到GitHub去下载,下载地址:https://github.com/alibaba/nacos,下载好后将文件放至项目中 2.需要将nacos用到的数据文件导入到数据库中 3.需要修改nacos的配置文件 注意:修改…

wampServer安装Redis 扩展

第一步:查看php版本信息 使用 phpinfo() 函数查看 PHP 的版本信息(用于选择扩展包) 版本信息:PHP版本为 8.0.26,编译器版本 Visual C 2019,CPU架构 x64 。 第二步:根据第一步信息的版本选择扩…

jpg图片马使用条件竞争的方法实现二次渲染绕过

文章目录 一、制作图片马二、上传图片马三、上传攻击四、访问攻击五、启动攻击 一、制作图片马 首先使用cmd制作jpg图片马 二、上传图片马 然后打开bp拦截上传该图片马 三、上传攻击 对拦截的结果发送到攻击模块 清除所有变量,payloads做如下设置 四、访问…

VBA之正则表达式(42)-- 快速提取名称

实例需求:A列为待处理数据,现需要从中提取商品名、通用名、胰岛素笔相关信息,保存到B列至D列,需要注意如下几点: 胰岛素笔(E列)数据只存在于每组产品的第一行记录中,例如第2行数据中…

redis配置和优化

关系数据库与非关系型数据库 关系型数据库: 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。 SQL 语句(标准数据查询语言)就是一种基于关系型数据库的…

[MySQL]1292 - Incorrect date value: ‘0000-00-00‘ for column ‘xxx‘ at row 1

第一步、修改mysql配置文件 sql_mode去掉NO_ZERO_DATE 注意:如果mysql配置文件内容没有sql_mode,需要手动加上 mysql配置文件示例: 第二步、重启MySQL

基于Python热门旅游景点数据分析系统设计与实现

博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精彩专…

SpringBoot 实现 elasticsearch 查询操作(RestHighLevelClient 的案例实战)

文章目录 1. 环境准备1. 查询全部2. 根据 name 查询 match 分词查询3. 根据 name 和 品牌查询 multiMatch 分词查询4. 根据 brand 查询 match 分词查询5. 按照价格 范围查询6. 精确查询7. boolQuery8. 分页9. 高亮查询9. 公共解析 上一节讲述了 SpringBoot 实现 elasticsearch …

Attention Is All You Need (NIPS 2017)

Attention Is All You Need - 注意力就是你所需要的(NIPS 2017) 摘要1. 引言2. 背景3. 模型架构3.1 编码器和解码器堆叠3.2 注意力3.2.1 缩放点积注意力3.2.2 多头注意力3.2.3 注意力在我们的模型中的应用 3.3 位置前馈网络3.4 嵌入和Softmax3.5 位置编码…

【⑧MySQL进阶】:子查询与HAVING/SELECT的完美结合

前言 ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL子查询在HAVING/SELECT字句中使用、及相关子查询和WITH/EXISTS字句的讲解✨ 目录 前言一、在HAVING/SELECT字句中使用子查询二、相关子查询三、WITH/EXISTS、NOT EXISTS字句四、总结 一、在HAVING/SELECT字句中…

手机提醒打卡软件哪个好用 每日计划的打卡软件推荐

在人生的不同阶段,人们会有不同的目标,为了目标可以很好地实现,可以将其分散为多个不同的小计划,并坚持不断地打卡完成每项计划,助力自己最终完成目标。那手机提醒打卡软件哪个好用些,每日计划的打卡软件推…

针对中国用户?数万个正规网站被劫持

知名安全公司Acronis被黑客攻破,多达12GB的资料泄露。 而黑客给出的攻击理由令人啼笑皆非——在他们看来,这家公司虽然从事网络安全业务,但实际上技术如shit一样。 黑客觉得很无聊,就想羞辱一下对方,遂动手攻击了这家网…