Express连接postgres数据库

文章目录

  • Express介绍
  • 创建express项目
  • 连接postgres数据库
    • 创建查询接口
    • 创建插入接口

Express介绍

Express 是一个基于 Node.js轻量级 Web 框架,用于快速构建 RESTful APIWeb 应用。它提供了路由、中间件、模板引擎等功能,是 Node.js 开发中最流行的框架之一。

创建express项目

新建【express-pgAdmin】文件夹,并用cmd打开,运行如下命令,使用该npm init命令为您的应用程序创建一个package.json文件:

npm init

安装express

npm install express

【express-pgAdmin】文件夹下新建app.js文件,并添加如下代码:

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
    res.send('Hello World!')
})

app.listen(port, () => {
    console.log(`Example app listening on port ${port}`)
})

使用以下命令运行该应用程序:

node app.js

浏览器访问:

Express连接postgres数据库_第1张图片

连接postgres数据库

安装库:

npm install pg

创建连接池:

const {Pool} = require("pg")

// PostgreSQL 配置信息
const pool = new Pool({
    user: "postgres",         // 你的 PostgreSQL 用户名
    host: "localhost",        // pgAdmin 数据库主机
    database: "basketball",        // 你的数据库名称
    password: "postgres", // 你的数据库密码
    port: 5432,              // 默认 PostgreSQL 端口
});

测试连接:

// 测试数据库连接
pool.connect((err, client, release) => {
    if (err) {
        return console.error("数据库连接失败", err.stack);
    }
    console.log("数据库连接成功");
    release();
});

启动程序:

node app.js

Express连接postgres数据库_第2张图片

创建查询接口

代码实现:

// 创建一个简单的路由来查询数据库
app.get('/data', async (req, res) => {
    try {
        // 执行 SQL 查询
        const { rows } = await pool.query('SELECT * FROM nba.teams');
        res.json(rows);
    } catch (error) {
        console.error('Error querying the database:', error);
        res.status(500).json({ error: 'Internal Server Error' });
    }
});

浏览器访问查看结果:

Express连接postgres数据库_第3张图片

创建插入接口

代码实现:

// 插入数据 API
app.post("/add", async (req, res) => {
    console.log(req.body);
    const {id, name, city } = req.body;
    if (!name || !city || !id) {
        return res.status(400).json({ error: "缺少 name 或 id" });
    }
    try {
        const result = await pool.query(
            "INSERT INTO nba.teams (id, name, city) VALUES ($1, $2, $3) RETURNING *",
            [id, name, city]
        );
        res.status(201).json({ message: "球队创建成功", teams: result.rows[0] });
    } catch (err) {
        console.error("插入失败:", err);
        res.status(500).json({ error: "插入失败,可能是 id 已存在" });
    }
});

使用postman测试:

Express连接postgres数据库_第4张图片

你可能感兴趣的:(数据库,express,数据库)