首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Strapi部署无法连接到MongoDB

Strapi部署无法连接到MongoDB
EN

Stack Overflow用户
提问于 2020-06-11 11:04:38
回答 1查看 1.1K关注 0票数 0

我试图使用mongoDB将我的Strapi应用程序部署到Heroku,但是每次部署时都会收到这个错误。

代码语言:javascript
复制
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

该应用程序在本地工作,我遵循了许多教程(1 )2),包括许多版本的官方Strapi文件,以使这一工作,但他们都会导致这个错误。我看过类似的Stack问题/ Strapi github问题,看看我的问题是否可以通过修改他们的答案来解决,但是没有什么效果。

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

我的完整的strapi应用程序,包括database.js, server.js, *config/environments/production/database.json,可以在这里查看https://github.com/KyleSFraser/Portfolio/tree/master/backend

我一直在绕圈子,不断地使用文档或教程来重新构建后端。我非常希望有任何指针来解决这个反复出现的问题,并使用Heroku & Strapi成功地部署我的mongoDB。

编辑删除以前的配置vars,现在它已经工作了

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-12 16:53:46

uri: env('DATABASE_URI' || ''),添加到我的database.js文件中已经解决了这个问题,不确定为什么它一开始就丢失了。

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

database.js

代码语言:javascript
复制
  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

代码语言:javascript
复制
module.exports = ({ env }) => ({
  host: env('HOST', '0.0.0.0'),
  port: env.int('PORT', 1337),
});

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62322925

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档