eruditecat
@eruditecat
Красноглазик

Как правильно подключаться к MongoDB в NodeJS?

Открывать новое подключение к БД при каждом запросе к веб-серверу или открывать подключение при инициализации приложения и использовать одно подключение повсеместно?

var express = require('express');
var app = express();

app.locals.MongoDB = require('mongodb');
app.locals.MongoClient = app.locals.MongoDB.MongoClient;

// [1] Здесь может быть роутинг. Или:

app.locals.MongoClient.connect('mongodb://localhost/test')
.then(db => {

  // Соединение с БД установлено и теперь доступно в любом роуте:
  app.locals.db = db;

  // [2] ... и роутинг здесь.

  return new Promise((resolve, reject) => {
    var port = process.env.PORT || 8080;
    app.listen(port, () => {
      resolve(`App listening on http://localhost:${port}/`);
    });
  });
}, console.log)
.then(console.log, console.log);
  • Вопрос задан
  • 715 просмотров
Решения вопроса 1
un1t
@un1t
Короче вызывай коннект один раз, он создает пул соединений. Напиши синглтон. Если будешь вызывать коннект на каждый запрос, то при серьезной нагрузке приложение помрет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mannaro
@mannaro
Умею профессионально гуглить
Обычно открывается сразу несколько подключений (пул) при старте приложения, затем нагрузка распределяется по ним (создаются/останавливаются дополнительные соединения). Я бы предложил использовать Mongoose, он снимет эту проблему с вас.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы