因此,我可以使用提示符(psql -h localhost -p 5432 -U postgres -d Luxe-Hotel)并输入密码通过命令提示符连接到我的psql数据库,但我无法通过node.js连接.
import express from "express";
import cors from "cors";
import pkg from "body-parser";
import bcrypt from "bcrypt";
import knex from "knex";
import handleRegistration from "./controllers/handleRegistration.js";
import handleSignIn from "./controllers/handleSignIn.js";
const db = knex({
client: 'pg',
connection: {
host: 'localhost',
port: 5432,
user: 'postgres',
password: 'xxxxxxxxxx',
database:'Luxe-Hotel'
},
pool: { min: 0, max: 7 }
});
db.raw('SELECT 1')
.then(() => console.log('PostgreSQL connected'))
.catch(err => console.error('PostgreSQL connection error:', err));
因此,当我启动服务器时,出现错误: “PostgreSQL 连接错误:AggregateError [ECONNREFUSED]: 在内部ConnectMultiple(节点:net:1122:18) 在 afterConnectMultiple (节点:net:1689:7) { 代码:'ECONNREFUSED', [错误]:[ 错误:连接 ECONNREFUSED ::1:5432 在createConnectionError(节点:net:1652:14) 在 afterConnectMultiple (节点:net:1682:16) { 错误号:-111, 代码:'ECONNREFUSED', 系统调用:'连接', 地址:'::1', 端口:5432 }, 错误:连接ECONNREFUSED 127.0.0.1:5432 在createConnectionError(节点:net:1652:14) 在 afterConnectMultiple (节点:net:1682:16) { 错误号:-111, 代码:'ECONNREFUSED', 系统调用:'连接', 地址:'127.0.0.1', 端口:5432 } ] }” 我已经关闭了防火墙,检查 pgsl confiq 文件中的侦听地址和端口,检查了代码中的配置设置,但仍然没有成功。
问题很可能是该用户可以从本地网络进行连接。
为了修复它,请打开
pg_hba.conf
并在最后添加以下条目。
host all all 0.0.0.0.0/0 md5
host all all ::/0 md5
之后您将能够使用 Node.JS 进行连接