我正在尝试在 Node.js 应用程序中使用 postgres。我创建了一个 db 实例,我正在使用 pg 连接到它。当我尝试连接到它时,出现错误:
{ Error: connect ETIMEDOUT xxx.xx.xx.xxx:5432
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1097:14)
errno: 'ETIMEDOUT',
code: 'ETIMEDOUT',
syscall: 'connect',
address: 'xxx.xx.xx.xxx',
port: 5432 }
我已经确保数据库是公开的。我在 SO 和 google 和duckduckgo 上搜索过这个错误,但找不到类似的错误。
我已经两次和三次检查我的主机、用户、数据库、密码和端口是否都正确。我使用的是PG文件在这里和AWS文档这里设置我的连接。
我希望任何人都可以提供任何见解。
const express = require('express');
const logger = require('morgan');
const helmet = require('helmet');
const { Pool, Client } = require('pg');
const server = express();
server.use(logger('dev'));
server.use(helmet());
const keys = require('./keys/keys');
const pgConfig = {
host: keys.pgHost,
user: keys.pgUserName,
database: keys.pgDBName,
password: keys.pgUserPW,
port: keys.pgDBPort
};
const pool = new Pool({ ...pgConfig });
server.get('/', async (req, res) => {
await pool.connect((err, client, release) => {
if (err) {
console.log(err);
}
})
return res.status(200).send('<h1>Welcome to the server</h1>');
});
module.exports = server;
编辑:我能够使用 pgadmin 使用保存在我的项目中的相同主机、数据库用户名和密码连接到数据库
我想出了什么问题。我实际上连接成功。我没有回来pool.connect()
,这导致了超时。我把它改成下面的,现在它正在安慰“没有错误”并且没有连接超时错误。
await pool.connect((err, client, release) => {
if (err) {
console.log(err);
} else {
return console.log("no error");
}
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句