连接到 postgres 数据库失败

时间:2021-04-20 09:55:51

标签: node.js postgresql authentication

我正在尝试使用 node-express-postgres 实现身份验证服务。

我对池进行了这样的配置:

const Pool = require('pg').Pool;

const pool = new Pool({
    user: process.env.DB_USER,
    password: process.env.DB_PASSWORD,
    database: process.env.DB_NAME, 
    host: process.env.DB_HOST,
    port: 5432
});

module.exports = pool;

我正在尝试执行以下调用作为连接的简单测试:

const express = require('express');
const router = express.Router();
const pool = require('../db');
const bcrypt = require('bcryptjs');

router.post('/login', async (req, res) => {
    try {
        let temp = await pool.query("SELECT * FROM records");
        console.log(temp)
    } catch (error) {
        console.log(error.message);
    }
});

当我向此端点发送发布请求时,我的应用程序崩溃并出现以下错误: Error: SASL: SCRAM-SERVER-FIRST-MESSAGE: client password must be a string

我检查了我所有的环境变量,它们是正确的。 知道为什么它无法对 postgres 数据库执行任何操作吗?

2 个答案:

答案 0 :(得分:1)

看来,该节点没有读取 .env 文件。 你可以用

检查
console.log(process.env.DB_PASSWORD);

例如,它可以通过包 'dotenv' 修复。

npm i --save dotenv

然后在 index.js 的第一行

require('dotenv').config();

答案 1 :(得分:1)

检查您的 postgres 密码是否正确。我在 Mac 上工作时遇到了类似的问题,默认情况下 posgreSQL 用户是“posgres”,密码是“root”

就我而言,我有类似的东西

...

  USER: "postgres",

  PASSWORD: "",
...

哪个产生了错误