Strapi Heroku部署无法连接到MongoDB

时间:2020-06-11 11:04:38

标签: node.js mongodb heroku deployment strapi

我正在尝试使用mongoDB将Strapi应用程序部署到Heroku,但是每次尝试部署时都会收到此错误。

debug ⛔️ Server wasn't able to start properly.
2020-06-11T10:38:53.257748+00:00 app[web.1]: [2020-06-11T10:38:53.257Z] error Error connecting to the Mongo database. Server selection timed out after 30000 ms
2020-06-11T10:38:53.268085+00:00 app[web.1]: npm ERR! code ELIFECYCLE
2020-06-11T10:38:53.268583+00:00 app[web.1]: npm ERR! errno 1
2020-06-11T10:38:53.270443+00:00 app[web.1]: npm ERR! backend@0.1.0 start: `strapi start`
2020-06-11T10:38:53.270697+00:00 app[web.1]: npm ERR! Exit status 1

该应用程序可在本地运行,并且我遵循了许多教程(12),包括offical Strapi documentation的许多版本才能正常工作,但它们均会导致此错误。我看过类似的Stack问题/ Strapi github问题,看是否可以通过改编他们的答案来解决我的问题,但没有任何效果。

我确保heroku config的database_url和database_name匹配我的database_uri的字符串,并用yarn create strapi-app backend然后选择mongo创建了bandi应用程序,确保不使用--quickstart

可以在此处https://github.com/KyleSFraser/Portfolio/tree/master/backend

查看我的完整手机应用程序,包括database.js, server.js, *config/environments/production/database.json

我一直在兜圈子,不断尝试使用试图部署的文档或教程来重建后端。我非常感谢有任何指针可以解决此重复出现的问题,并使用Heroku和Strapi成功部署我的mongoDB。

编辑 现在可以删除以前的配置变量了

1 个答案:

答案 0 :(得分:1)

uri: env('DATABASE_URI' || ''),添加到我的database.js文件中已解决了该问题,不确定是否首先丢失了它。

对于有类似问题的任何人,这里是我的database.jsserver.js供参考;

database.js

  defaultConnection: 'default',
  connections: {
    default: {
      connector: 'mongoose',
      settings: {
        uri: env('DATABASE_URI' || ''),
        host: env('DATABASE_HOST', '127.0.0.1'),
        srv: env.bool('DATABASE_SRV', false),
        port: env.int('DATABASE_PORT', 27017),
        database: env('DATABASE_NAME', '(backend)'),
        username: env('DATABASE_USERNAME', ''),
        password: env('DATABASE_PASSWORD', ''),
      },
      options: {
        authenticationDatabase: env('AUTHENTICATION_DATABASE', null),
        ssl: env.bool('DATABASE_SSL', false),
      },
    },
  },
});

server.js

module.exports = ({ env }) => ({
  host: env('HOST', '0.0.0.0'),
  port: env.int('PORT', 1337),
});

最后确保所有的Heroku配置变量都设置为与mongoDB /数据库URI的相关细分相匹配

相关问题