Подключение к Монго Атласу из локального кода апостроф CMS - PullRequest
0 голосов
/ 24 августа 2018

Я включил соединение с любого места 0.0.0.0/0 в Mongo Atlas.В апострофном коде, в файле data / local.js я добавил следующий код:

module.exports = {
  modules: {
    'apostrophe-db': {
      uri: 'mongodb+srv://clustername.mongodb.net/dbname?retryWrites=true'
    }
  }
};
Пробовал mongodb + srv: // admin: @ clustername.mongodb.net / dbname? RetryWrites = true .

Я вижу следующий журнал:

/home/radhika/code/demo/demo-io/node_modules/apostrophe/index.js:67
    throw err;
    ^
MongoError: not authorized on admin to execute command { listIndexes: "aposCache", cursor: {  } }
        at Function.MongoError.create (/home/radhika/code/demo/demo-io/node_modules/mongodb-core/lib/error.js:31:11)
        at queryCallback (/home/radhika/code/demo/demo-io/node_modules/mongodb-core/lib/cursor.js:212:36)
        at /home/radhika/code/demo/demo-io/node_modules/mongodb-core/lib/connection/pool.js:469:18
        at _combinedTickCallback (internal/process/next_tick.js:131:7)
        at process._tickCallback (internal/process/next_tick.js:180:9)

Что мне здесь не хватает?

1 Ответ

0 голосов
/ 24 августа 2018

Мне удалось воспроизвести это с помощью Атласа. Вы пытаетесь использовать URL-адрес mongodb + srv, который Atlas рекомендует при использовании драйвера MongoDB версии 3.6 или выше. Apostrophe 2.x в настоящее время используется драйвером MongoDB 2.x, поэтому он не работает.

Вам нужно использовать более старый стиль URL, который вы можете увидеть в Atlas, если вместо этого щелкните вкладку «Я использую драйвер 3.4 или более ранней версии»:

mongodb://user:password@test-shard-00-00-some-address.mongodb.net:27017,test-shard-00-01-some-address.mongodb.net:27017/test?ssl=true&replicaSet=your-replica-set-name&authSource=admin&retryWrites=true

Когда я делаю это таким образом, у меня нет проблем с подключением.

Если вы хотите использовать более новую версию драйвера MongoDB и новый стиль URI, вы можете использовать модуль apostrophe-db-mongo-3-driver . Но в настоящее время это не обязательно, чтобы быть успешным с Атласом.

В Apostrophe 3.x мы, конечно, будем использовать драйвер нового поколения из коробки.

(Одна последняя версия FYI - версии драйверов MongoDB и версий серверов MongoDB - не одно и то же. Например, вам не нужен драйвер 3.6 для подключения к 3.6.)

...