AWS:nodejs app无法连接到pg数据库

时间:2018-02-14 13:51:10

标签: node.js postgresql amazon-web-services

我正在尝试在网上上传节点应用程序。 当我在本地启动应用程序时,它完全正常,因为我的应用程序可以访问postgres 但是,当我上传我的服务器时,它无法连接到数据库。 我的应用使用loopback.io 这是server / config.json:

{
"restApiRoot": "/api",
"host": "0.0.0.0",
"port": 3000,
"remoting": {
  "context": false,
  "rest": {
     "handleErrors": false,
  "normalizeHttpPath": false,
  "xml": false
},
"json": {
  "strict": false,
  "limit": "100kb"
},
"urlencoded": {
  "extended": true,
  "limit": "100kb"
},
"cors": false
},
"legacyExplorer": false,
"logoutSessionsOnSensitiveChanges": true
}

这是/server/datasources.json

{
"db": {
"name": "db",
"connector": "memory"
},
"postgres": {
"host": "localhost",
"port": 5432,
"url": "",
"database": "postgres",
"password": "postgresseason",
"name": "postgres",
"user": "postgres",
"connector": "postgresql"
}
}

我已经完成了研究,我认为我必须更改网址,以便它不会尝试寻找“本地”方式,但却无法使其正常工作。
我尝试使用网址postgress://postgres:postgresseason@db:5432/postgres但没有成功。

我得到的错误是:

Web server listening at: http://0.0.0.0:8080
Browse your REST API at http://0.0.0.0:8080/explorer
Connection fails: Error: getaddrinfo ENOTFOUND db db:5432
It will be retried for the next request.

或者:

Web server listening at: http://0.0.0.0:3000
Browse your REST API at http://0.0.0.0:3000/explorer
Connection fails: Error: connect ECONNREFUSED 127.0.0.1:5432
It will be retried for the next request.

任何帮助如何使其工作? 感谢

1 个答案:

答案 0 :(得分:0)

您需要确保安装postgres服务器并通过aws访问。

默认情况下,它无法访问您本地安装的postgres(没有复杂的端口转发等...)

如果您使用ec2,可以在本地安装postgres服务器并使用localhost。 或者在另一个aws服务中设置postgres,如下所示:https://aws.amazon.com/rds/postgresql/ 只需确保nodejs服务器/服务具有访问和查询postgres所需的权限。