【发布时间】: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 你能解决这个错误吗?
标签: node.js postgresql authentication