序列化凭据以将Node.js应用程序部署到Heroku

时间:2020-07-08 20:50:52

标签: node.js postgresql heroku deployment sequelize.js

我目前正在学习Node.js(具有Express,Postgres,Sequelize),并且有一个非常简单的API应用程序在本地运行(正在运行,已与Postman一起尝试),现在我希望将其部署到Heroku。过去使用过Rails时,我对Heroku有一些基本的了解,但是我对Rails在幕后所处理的某些事情仍然有所了解。

我已经设置了一个config.js文件,其中包含运行npx sequelize-cli init时生成的一些生产凭证,我已经更新了本地设置(这可行!),但是我需要添加什么作为生产凭证?我需要自己提供吗?还是由Heroku提供?

请注意-我已经在Heroku上设置了管道和应用程序以及Postgres,但是当尝试通过cli连接到我的应用程序时,例如heroku run bash --app name-of-my-app并运行npx sequelize-cli db:create会给我以下错误:

Loaded configuration file "config/config.js".
Using environment "production".
TypeError: Cannot read property 'replace' of undefined
    at Object.removeTicks (/app/node_modules/sequelize/lib/utils.js:347:12)
    at Object.quoteIdentifier (/app/node_modules/sequelize/lib/dialects/abstract/query-generator/helpers/quote.js:50:35)
    at PostgresQueryGenerator.quoteIdentifier (/app/node_modules/sequelize/lib/dialects/abstract/query-generator.js:891:24)
    at getCreateDatabaseQuery (/app/node_modules/sequelize-cli/lib/commands/database.js:77:50)
    at Object.exports.handler (/app/node_modules/sequelize-cli/lib/commands/database.js:45:17)

更多说明:

  • 我正在使用Node 14.0.0并续订6.3.0
  • 我已将"engines": { "node": "14.x" }添加到我的package.json
  • 我没有procfile,因为Heroku表示不再需要
  • 我的应用程序入口点是app.js

1 个答案:

答案 0 :(得分:0)

将其放在此处,以防其他人遇到类似的麻烦:

只需弄清楚,它实际上很简单,但是运行config.js时提供的默认npx sequelize-cli init设置让我有些困惑。

这是我的生产设置:

  production: {
    use_env_variable: 'DATABASE_URL',
    dialect: 'postgres'
  }