MongoDB Соединение, созданное для каждого вызова функции AWS без сервера - PullRequest
0 голосов
/ 24 июня 2019

Я установил Express js с Serverless и подключался к атласу mongoDb.Код работает нормально, но создает соединение для каждого звонка.Я также попробовал метод Caching, но не повезло с ним.Вот мой код ниже

// server.js
const sls = require('serverless-http')
const connectToDatabase = require('./lib/db');

const app = require('./lib/app')
connectToDatabase();
module.exports.run = sls(app)



//db.js
const mongoose = require('mongoose')
var Promise = require("bluebird");
// console.log("Connecting to " + process.env.DB);
const connection = {}
mongoose.Promise= Promise;

module.exports = async () => {
  if (connection.isConnected) {
    console.log('=> using existing database connection')
    return
  }

  console.log('=> using new database connection')
  const db = await mongoose.connect(process.env.DB,{useNewUrlParser:true})
  connection.isConnected = db.connections[0].readyState
}

1 Ответ

0 голосов
/ 26 июня 2019

Есть несколько вещей, которые нужно проверить:

  • Сколько времени занимает выполнение вашей лямбда-функции? Ваша функция будет обрабатывать только один запрос за раз. Если вы сделаете второй запрос до того, как ваш первый запрос завершится, будет запущен новый экземпляр вашей функции.

  • Убедитесь, что мангуст не закрывает соединение после завершения вашей функции.

...