我正在尝试使用Sequelize从本地nodejs应用程序连接到Heroku postgresql数据库.我按照这两个指南,一切都在heroky服务器端工作得很好,但是当我在Mac上本地运行时,我的节点应用程序将无法连接到heroku.
以下是我启动本地应用的方法:
DATABASE_URL=$(heroku config:get DATABASE_URL) nodemon
Run Code Online (Sandbox Code Playgroud)
得到我:
Sequelize: Unable to connect to the database:
Run Code Online (Sandbox Code Playgroud)
但是通过这样做我得到了正确的URL:
echo $(heroku config:get DATABASE_URL)
Run Code Online (Sandbox Code Playgroud)
这些命令工作正常:
heroku pg:psql
psql $(heroku config:get DATABASE_URL)
Run Code Online (Sandbox Code Playgroud)
这是我的nodejs代码:
var match = process.env.DATABASE_URL.match(/postgres:\/\/([^:]+):([^@]+)@([^:]+):(\d+)\/(.+)/)
sequelize = new Sequelize(match[5], match[1], match[2], {
dialect: 'postgres',
protocol: 'postgres',
port: match[4],
host: match[3],
logging: false
})
sequelize
.authenticate()
.complete(function(err) {
if (!!err) {
log('Sequelize: Unable to connect to the database:', err);
} else {
http.listen(process.env.PORT || config.server.port, function(){
log('Web server listening on port '+process.env.PORT …Run Code Online (Sandbox Code Playgroud)