Подключение MongoDB Atlas постоянно падает - PullRequest
0 голосов
/ 26 марта 2020

Я интегрировал MongoDB atlas в свое приложение nodejs, но соединение прерывается каждые несколько часов, что заставляет приложение перезагружаться. Есть ли возможность обрабатывать переподключения в коде, чтобы избежать перезапуска приложения?

{MongoNetworkError: соединение 2 с 67.156.445.93:27017 закрыто в (анонимная функция) .forEach.op (/home/ubuntu/app/node_modules/mongodb/lib/cmap/connection.js:63 : 15) в Map.forEach () в TLSSocket.Connection.stream.on (/home/ubuntu/app/node_modules/mongodb/lib/cmap/connection.js:62:20) в TLSSocket.emit (события. js: 203: 15) в _handle.close (net. js: 607: 12) в TCP.done (_tls_wrap. js: 388: 7) имя: 'MongoNetworkError', [Symbol (mongoErrorContextSymbol) )]: {isGetMore: true}}

Код:

const log = console.log;
const mongoose = require('mongoose');
const link = ' URL of MONGOATLAS DB';

const connectDB = async () => {
  mongoose.connect(link, {
    useNewUrlParser: true,
    useUnifiedTopology: true
  });

  mongoose.connection.on('connected',() => {
      log(`MongoDB connection successful!`);
  });

  mongoose.connection.on('error',(err) => {
      log(`MongoDB connection error => ${err}!`);
  });

  mongoose.connection.on('disconnected', () => {
      log(`MongoDB connection diconnected`);
  });

}

module.exports = connectDB;

1 Ответ

1 голос
/ 26 марта 2020

Есть файл с именем database. js. Внутри этого введите этот код:

const mongoose = require("mongoose");

const db = "mongodb://localhost:27017/yourDbName" //Or use atlas url.

const connectDB = async () => {
  try {
    await mongoose.connect(db, {
      useNewUrlParser: true,
      useUnifiedTopology: true,
      useCreateIndex: true,
      useFindAndModify: false
    });
    console.log("Mongo db Connected !");
  } catch (err) {
    console.log(err.message);
    //exit process with failure
    process.exit(1);
  }
};

module.exports = connectDB;

На вашем сервере. js или index. js:

const connectDB = require("./database.js");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...