MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Свързване на приложението Heroku с облачна услуга Atlas MongoDB

Това, което мисля, може да реши проблема ви

Отказ от отговорност: Не съм използвал нито Heroku, нито MongoDB Atlas, но ги разглеждам.

Според проблем с Github, който открих, ще получите това съобщение за грешка, ако не сте поставили в белия списък IP адресите на сървъра в MongoDB Atlas.

Четейки документите MongoDB Atlas, единственият начин, който виждам да направя това в комбинация с Heroku dynos, е да добавя 0.0.0.0/0 (т.е. всички адреси) към белия ви списък на MongoDB Atlas.

Опитайте и моля, докладвайте дали можете да инстанцирате връзка.

На SSL

Опитвайки се да отговоря на въпроса за SSL, не мисля, че трябва да го активирате на Heroku въз основа на това, което прочетох, въпреки че не съм напълно сигурен.

Ако сървърът MongoDB извърши валидиране на сертификат, кодът на Node.js за свързване с него трябва да изглежда по следния начин (взет от документацията на драйвера на Node.js):

var MongoClient = require('mongodb').MongoClient,
  f = require('util').format,
  fs = require('fs');

// Read the certificates
var ca = [fs.readFileSync(__dirname + "/ssl/ca.pem")];
var cert = fs.readFileSync(__dirname + "/ssl/client.pem");
var key = fs.readFileSync(__dirname + "/ssl/client.pem");

// Connect validating the returned certificates from the server
MongoClient.connect("mongodb://localhost:27017/test?ssl=true", {
  server: {
      sslValidate:true
    , sslCA:ca
    , sslKey:key
    , sslCert:cert
    , sslPass:'10gen'
  }
}, function(err, db) {
  db.close();
});

Ако сървърът на MongoDB не проверява за никакви SSL сертификати, можете просто да използвате код като следния (също взет от документацията на драйвера на Node.js):

var MongoClient = require('mongodb').MongoClient;

MongoClient.connect("mongodb://localhost:27017/test?ssl=true", function(err, db) {
  db.close();
});

Като се има предвид, че документацията на Atlas съдържа следния примерен код за свързване към него от Node.js, мисля, че не трябва да активирате SSL на Heroku:

var MongoClient = require('mongodb').MongoClient;

var uri = "mongodb://kay:[email protected]:27017,mycluster0-shard-00-01-wpeiv.mongodb.net:27017,mycluster0-shard-00-02-wpeiv.mongodb.net:27017/admin?ssl=true&replicaSet=Mycluster0-shard-0&authSource=admin";
MongoClient.connect(uri, function(err, db) {
  db.close();
});


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Работа с грешки при валидиране на Mongoose – къде и как?

  2. Контролен списък за сигурност за производствени внедрявания на MongoDB

  3. Анализирайте ISO8601 низ от дата към дата с UTC часова зона

  4. множество копия на Mongo DB на един и същ сървър

  5. MongoDB $gte Оператор на конвейер за агрегиране