使用nodejs操作postgresql

news/2024/7/9 19:33:54 标签: postgresql, 数据库

环境准备

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.niftyadmin.cn/n/475002.html

相关文章

STM32外设系列—BH1750

文章目录 一、BH1750简介二、BH1750原理图三、BH1750数据手册3.1 指令集3.2 IIC通信读/写 四、BH1750程序设计4.1 IIC程序4.2 BH1750初始化程序4.3 读取BH1750测量结果4.4 获取光照强度4.5 相关宏定义 五、应用实例六、拓展应用6.1 实时调节LED亮度6.2 实时调整颜色阈值 一、BH…

Google Android GMS全家桶

Google Android设备Gms全家桶app和包名对应关系统计,供查询。 Apk名称包名AppName中文名称说明AndroidAutoStubcom.google.android.projection.gearheadAndroid Auto

【软考网络管理员】2023年软考网管初级常见知识考点(26)- HTML常见属性标签、表格、表单详解

涉及知识点 Html的概念,html常见标签,html常见属性,html表格,html表单,软考网络管理员常考知识点,软考网络管理员网络安全,网络管理员考点汇总。 原创于:CSDN博主-《拄杖盲学轻声码…

eclipse配置tomcat

一、为什么要配置tomcat ? Eclipse是一款非常流行的Java开发集成环境(IDE),它主要用于开发Java语言相关的应用程序。而Tomcat则是一个流行的开源Web服务器,也是一个Servlet容器。 在Java Web应用程序的开发过程中&…

linux一些服务的通用步骤

服务信息和管理 目前主要使用systemd系统和服务管理器进行管理,主要通过systemctl命令来运行,关闭,重启,显示,启用或禁用系统服务。 linux的服务启动项一般作为可执行程序保存在/usr/lib/systemd/system目录下&#x…

MySQL 基础面试题02(事务索引)

1.什么是 MySQL 事务? MySQL 事务是指一组操作,是一个不可分割的工作单位,可以确保一组数据库操作要么全部执行,要么全部不执行。换句话说,事务是 MySQL 中保证数据一致性和完整性的机制。 在 MySQL 中,事…

【MOOC 测验】第4章 网络层

1‌、下列关于路由算法描述错误的是( ) A. 链路状态算法是一种全局路由算法,每个路由器需要维护全局状态信息B. OSPF 是一种域内路由协议,核心是基于 Dijkstra 最低费用路径算法C. RIP 是一种域内路由算法,核心是基…

MacOS 如何刻录U盘装系统

MacOS 如何刻录U盘装系统 1. 确认U盘挂载分区 % diskutil list /dev/disk0 (internal, physical):#: TYPE NAME SIZE IDENTIFIER0: GUID_partition_scheme *1.0 TB disk01: App…