Strongloop Heroku Postgres安装SSL错误

我是Node.js的新手,已经使用StrongLoopbuild立了一个在Heroku(free)上运行的应用程序。 我设置了heroku postgresql插件(免费层),并试图将数据源添加到StrongLoop的arc composer UI。 这个UI更新了server / datasources.json。 当我尝试连接到我的数据源时,我得到这个错误:

no pg_hba.conf entry for host "XXXX", user "myUser", database "mydb", SSL off 

我知道这个问题必须在postgres上设置SSL。 最接近的StrongLoop文档没有讨论这个: https ://strongloop.com/strongblog/postgresql-node-js-apis-loopback-connector/ …因为我使用StrongLoop而不是直接Node.js, Heroku的文档也让我缺乏https://devcenter.heroku.com/articles/heroku-postgresql#connecting-in-node-js 。 我很困惑,我从这里需要做什么。

我有相当简单的newsfeedtypes的JSON数据,我用手柄操纵。 所以,如果这是免费的一级的问题,我打开其他免费的build议与我的设置。 我感谢您的帮助。

编辑datasources.json:

 {"db":{"name":"db","connector":"memory"}, "mydb":{ "host":"myhost", "port":####, "url":"myamazonawsurl:####/mydbname", "database":"mydbname", "password":"mypw", "name":"mydatasourcename", "ssl":true, "user":"myuser", "connector":"postgresql"}} 

更多的错误信息:

 error: no pg_hba.conf entry for host "XXXX", user "myuser", database "mydb", SSL off at Connection.parseE (c:\myroot\node_modules\loopback-connector-postgresql\node_modules\pg\lib\connection.js:539:11) at Connection.parseMessage (c:\myroot\node_modules\loopback-connector-postgresql\node_modules\pg\lib\connection.js:366:17) at Socket.<anonymous> (c:\myroot\node_modules\loopback-connector-postgresql\node_modules\pg\lib\connection.js:105:22) at Socket.emit (events.js:107:17) at readableAddChunk (_stream_readable.js:163:16) at Socket.Readable.push (_stream_readable.js:126:10) 

根据你已经链接的文章,你需要修改你的datasources.jsonconfiguration,以适应你的Heroku环境。

heroku pg:credentials DATABASE_URL获取您的详细信息,这些heroku pg:credentials DATABASE_URL将会吐出下面的内容(当然,没有我使用的占位符):

 postgres://user:password@ec2-host.compute-1.amazonaws.com:5432/your-db-name 

将其粘贴到datasources.json

  "accountDB": { "connector": "postgresql", "url": "postgres://user:password@ec2-host.compute-1.amazonaws.com:5432/your-db-name?sslmode=require" } 

Loopback的PostgreSQL文档提供了一些进一步的细节 – http://docs.strongloop.com/display/public/LB/PostgreSQL+connector – 但上面应该让你开始。

它应该是“?ssl = true”而不是“?sslmode = require”

 "devpostgresql": { "url": "postgres://user:password@ec2-54-228-226-93.eu-west-1.compute.amazonaws.com:5432/dbname?ssl=true", "name": "devpostgresql", "connector": "postgresql" } 

通过在命令行中设置以下环境variables,需要SSL for Postgres连接:

 $ export PGSSLMODE=require