连接到 postgres 数据库失败

Posted

技术标签:

【中文标题】连接到 postgres 数据库失败【英文标题】:Connections to postgres database failure 【发布时间】:2021-07-14 12:18:03 【问题描述】:

我正在尝试使用 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 数据库进行任何操作吗?

【问题讨论】:

什么给了console.log( typeof process.env.DB_PASSWORD ) 它返回一个字符串 我建议在你的 db.js 文件中为你的 db 实现 connect 方法,这样,当它被包含在另一个文件中时,我会自动运行 connect 操作然后做其他事情 我看到 pool.connect() 出现同样的错误 @nimrodfeldman 你能解决这个错误吗? 【参考方案1】:

检查你的IDE文件夹中的路径,当我检查时,它在下面的一个路径中,所以我将它移动到正确的文件夹中并繁荣,一切正常。

【讨论】:

【参考方案2】:

通过更新 npm 脚本修复它。

cross-env NODE_ENV=development nest start

安装了“cross-env”来设置 NODE_ENV。 如果我们的代码找不到 .development.env 文件或者找不到密码,就会抛出这个错误。

【讨论】:

【参考方案3】:

您可能应该在配置中指明您的 .env 文件位置

require('dotenv').config( path: '../.env' );

dotenv configurations

【讨论】:

【参考方案4】:

为我配置“dotenv”解决了错误

require('dotenv').config();

【讨论】:

【参考方案5】:

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

在我的情况下,我有类似的东西

...

  USER: "postgres",

  PASSWORD: "",
...

产生了错误

【讨论】:

【参考方案6】:

看来,该节点没有读取 .env 文件。 你可以检查一下

console.log(process.env.DB_PASSWORD);

例如,可以使用包 'dotenv' 来修复它。

npm i --save dotenv

然后在 index.js 的第一行

require('dotenv').config();

【讨论】:

以上是关于连接到 postgres 数据库失败的主要内容,如果未能解决你的问题,请参考以下文章

org.postgresql.util.PSQLException:致命:从 Spring Boot 连接到 postgres 时用户“postgres”的密码验证失败

使用 Databricks 连接到 AWS Postgres

如何将 spyder 连接到 postgres 数据库?

允许 docker 容器连接到本地/主机 postgres 数据库

如何将 obiee 连接到 postgres 数据库?

如何从本地系统连接到 Linode 中的 postgres