nodejs模块pg操作postgres数据库

Posted 木心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nodejs模块pg操作postgres数据库相关的知识,希望对你有一定的参考价值。

postgres数据库安装:windows安装解压版postgresql

 

1、使用nodejs模块pg操作postgres数据库

const pg = require(\'pg\')

// 数据库配置
var config = {
    user: "wenbin.ouyang",
    host: \'localhost\',
    database: "test",
    password: "",
    port: 5432,

    // 扩展属性
    max: 20, // 连接池最大连接数
    idleTimeoutMillis: 3000, // 连接最大空闲时间 3s
}

// 创建连接池
var pool = new pg.Pool(config);

// 查询
pool.connect(function (err, client, done) {
    if (err) {
        return console.error(\'数据库连接出错\', err);
    }
    // 简单输出个 Hello World
    client.query(\'SELECT $1::varchar AS OUT\', ["Hello World"], function (err, result) {
        done();// 释放连接(将其返回给连接池)
        if (err) {
            return console.error(\'查询出错\', err);
        }
        console.log(result.rows[0].out); //output: Hello World
    });
});

pool.connect().then(client => {
    // insert 数据
    client.query("INSERT INTO student(name, age) VALUES($1::varchar, $2::int)", ["xiaoming", "20"]).then(res => {
        console.log("Insert Success")
        // 如果是自增ID,有返回值的,在res里
        return res;
    })
        .then(res => {
            // 查询xiaoming
            return client.query("Select * FROM student WHERE name = $1", ["xiaoming"]);
        })
        .then(res => {
            // 输出结果,看是否插入成功
            console.log(res.rows[0]) // { id: 4, name: \'xiaoming\', age: 20 }
            console.log(res.rows.length)
        })
        .then(res => {
            // update 数据,将age改为21
            return client.query("UPDATE student SET age=$1 WHERE name=$2", [21, "xiaoming"])
        })
        .then(res => {
            // 再查询一次xiaoming
            return client.query("Select * FROM student WHERE name = $1", ["xiaoming"]);
        })
        .then(res => {
            // 再输出结果,看是否改为了21
            console.log(res.rows[0])
            console.log(res.rows.length)
        })
        .then(res => {
            // 删除数据
            client.query("DELETE FROM student WHERE name=$1", ["xiaoming"])
        })
        .then(res => {
            // 最后再查询一次xiaoming
            res = client.query("Select * FROM student WHERE name = $1", ["xiaoming"]);
            // 释放连接
            client.release()
            return res
        })
        .then(res => {
            // 再输出结果,没数据 undefined
            console.log(res.rows[0]) // undefined
            console.log(res.rows.length) // 0
        })
})

 

2、封装pg模块

  dbConfig.js

const pg = require(\'pg\')

// 数据库配置
var config = {
    user: "wenbin.ouyang",
    host: \'localhost\',
    database: "test",
    password: "root",
    port: 5432,

    // 扩展属性
    max: 20, // 连接池最大连接数
    idleTimeoutMillis: 3000, // 连接最大空闲时间 3s
}

// 创建连接池
var pool = new pg.Pool(config)

module.exports = pool

---

以上是关于nodejs模块pg操作postgres数据库的主要内容,如果未能解决你的问题,请参考以下文章

nodejs连接postgres

如何使用 NodeJs 连接到 docker compose 中的 postgres?

使用 LIMIT / ORDER BY 和 pg Postgres NodeJS 作为参数

NodeJS Postgres 错误 getaddrinfo ENOTFOUND

PG(node-postgres)VS。续集

heroku Postgres - 续集:主机没有 pg_hba.conf 条目