无法从trapi项目连接到Atlas数据库

时间:2020-05-20 13:05:49

标签: node.js strapi mongodb-atlas

我是Stradi框架的新手。我知道,现在stradi和atlas在一起了。我可以从我的本地终端连接到Atlas帐户,但无法从trapi项目连接,出现错误。我看到stackoverflow中的旧主题讨论了相同的错误,但是bandi已升级,数据库配置似乎已更改,所有这些解决方案均无效。

[2020-05-20T12:57:23.957Z]调试⛔️服务器无法正常启动。 [2020-05-20T12:57:23.959Z]错误确保您的MongoDB数据库正在运行。.

下面是config / environemnts / development / database.json的内容

  "defaultConnection": "default",
  "connections": {
    "default": {
      "connector": "strapi-hook-mongoose",
      "settings": {
        "client": "mongo",
        "host": "cluster0-58gdw.mongodb.net",
        "srv": "true",
        "port": 27017,
        "database": "brewhaha",
        "username": "temp123",
        "password": "temp123"
      },
      "options": {
        "authenticationDatabase": "",
        "ssl": true
      }
    }
  }
}

2 个答案:

答案 0 :(得分:0)

如果您使用mongodb地图集,建议您使用settings.uri

{
  "defaultConnection": "default",
  "connections": {
    "default": {
      "connector": "mongoose",
      "settings": {
        "uri": "mongodb://paulbocuse:<password>@strapidatabase-shard-00-00-fxxx6c.mongodb.net:27017,strapidatabase-shard-00-01-fxxxc.mongodb.net:27017,strapidatabase-shard-00-02-fxxxc.mongodb.net:27017/test?ssl=true&replicaSet=strapidatabase-shard-0&authSource=admin&retryWrites=true&w=majority"
      },
      "options": {
        "ssl": true
      }
    }
  }
}

按照概述的所有步骤操作,以获取“ uri”: https://strapi.io/documentation/3.0.0-beta.x/guides/databases.html#install-on-atlas-mongodb-atlas

答案 1 :(得分:0)

对于 Strapi 3.4.6。转到 config/database.js 尝试以下配置。

module.exports = ({ env }) => ({
  defaultConnection: 'default',
  connections: {
    default: {
      connector: 'mongoose',
      settings: {
        host: env('DATABASE_HOST', 'clusterX.XXXXX.mongodb.net'),
        srv: env.bool('DATABASE_SRV', true),
        port: env.int('DATABASE_PORT', 27017),
        database: env('DATABASE_NAME', 'mydb'),
        username: env('DATABASE_USERNAME', 'username'),
        password: env('DATABASE_PASSWORD', 'password'),
      },
      options: {
        authenticationDatabase: env('AUTHENTICATION_DATABASE', null),
        ssl: env.bool('DATABASE_SSL', true),
      },
    },
  },
});