从Node.js应用程序连接到Amazon上通过RDS托管的postgres时超时错误

从Node.js应用程序连接到Amazon上通过RDS托管的postgres时超时错误,node.js,postgresql,amazon-web-services,Node.js,Postgresql,Amazon Web Services,我正在尝试在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'

我正在尝试在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;
const express=require('express');
常量记录器=需要('morgan');
常量头盔=需要(“头盔”);
const{Pool,Client}=require('pg');
const server=express();
使用(记录器('dev'));
使用(helmet());
常量键=需要('./键/键');
常量pgConfig={
主机:keys.pgHost,
用户:keys.pgUserName,
数据库:keys.pgDBName,
密码:keys.pgUserPW,
端口:keys.pgDBPort
};
constpool=新池({…pgConfig});
server.get('/',异步(req,res)=>{
等待池连接((错误、客户端、释放)=>{
如果(错误){
控制台日志(err);
}
})
返回res.status(200).send(‘欢迎使用服务器’);
});
module.exports=服务器;

编辑:我能够使用pgadmin连接到数据库,使用保存在我的项目中的相同主机、db用户名和密码

我发现了问题所在。我实际上正在成功地连接。我没有在
pool.connect()
中返回,这导致超时。我把它改为下面,现在它正在安慰出“没有错误”和没有连接超时错误

await pool.connect((err, client, release) => {
    if (err) {
        console.log(err);
    } else {
        return console.log("no error");
    }
})

我发现了问题所在。我实际上正在成功地连接。我没有在
pool.connect()
中返回,这导致超时。我把它改为下面,现在它正在安慰出“没有错误”和没有连接超时错误

await pool.connect((err, client, release) => {
    if (err) {
        console.log(err);
    } else {
        return console.log("no error");
    }
})