我正在尝试在网上上传节点应用程序。 当我在本地启动应用程序时,它完全正常,因为我的应用程序可以访问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.
任何帮助如何使其工作? 感谢
答案 0 :(得分:0)
您需要确保安装postgres服务器并通过aws访问。
默认情况下,它无法访问您本地安装的postgres(没有复杂的端口转发等...)
如果您使用ec2,可以在本地安装postgres服务器并使用localhost。 或者在另一个aws服务中设置postgres,如下所示:https://aws.amazon.com/rds/postgresql/ 只需确保nodejs服务器/服务具有访问和查询postgres所需的权限。