我正在尝试在heroku上部署我的feathersjs网络应用程序,因为羽毛只是一个快速包装器,我认为它就像部署一个普通的节点应用程序。我在我的package.json上获得了“npm start”脚本,我将heroku远程添加到我的git repo中,当我推动heroku运行“yarn install”和“npm start”脚本时。但是,当应用程序启动时,会发生错误: heroku logs
我无法弄清楚发生了什么,有什么建议吗? 也许我可以将我的应用程序停靠,有人可以帮我找到合适的实现吗?
谢谢大家
答案 0 :(得分:0)
它与Express相同,但生成的应用程序默认使用feathers-configuration来提取您的应用程序设置。从错误消息看,您似乎没有提供正确的NODE_ENV
环境变量,在部署到Heroku时必须将其设置为production
。
答案 1 :(得分:0)
尝试设置" NODE_CONFIG_DIR"到" app / config /"
答案 2 :(得分:0)
通过 Sequelize 将feathers-chat 应用程序的工作端口移植到Heroku PostgreSQL
我现在有一个在 Heroku 上运行的 hello world https://github.com/feathersjs/feathers-chat 端口!
关键来源变更
将 >>=
设置为 'postgres'
环境变量 DATABASE_URL
:
config/production.json
Heroku 还导出 + "postgres": "DATABASE_URL"
,它在我的补丁之前也已经存在于该文件中。
将 PORT
传递给数据库连接:Can't connect to heroku postgresql database from local node app with sequelize
dialiectOptions
关键 Heroku 设置
通过以下方式启用 PostgreSQL Heroku 插件:
+ const sequelize = new Sequelize(connectionString, {
+ dialect: 'postgres',
+ logging: false,
+ define: {
+ freezeTableName: true
+ },
+ dialectOptions: {
+ // https://stackoverflow.com/questions/27687546/cant-connect-to-heroku-postgresql-database-from-local-node-app-with-sequelize
+ // https://devcenter.heroku.com/articles/heroku-postgresql#connecting-in-node-js
+ // https://stackoverflow.com/questions/58965011/sequelizeconnectionerror-self-signed-certificate
+ ssl: {
+ require: true,
+ rejectUnauthorized: false
+ }
+ }
+ });
这会自动为我们设置 heroku addons:create heroku-postgresql:hobby-dev-
环境变量。
在 config/production.json 中将 DATABASE_URL
编辑为正确的值
在 Heroku 应用设置中,将 host
环境变量设置为 NODE_ENV
参考书目: