我已经用Serverless设置了Express js并连接到mongoDb地图集。 该代码可以正常工作,但是可以为每个呼叫创建一个连接。我也尝试了缓存方法,但是没有运气。 这是我的下面的代码
// 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
}
答案 0 :(得分:0)
有几件事要检查:
您的Lambda函数执行需要多长时间?您的函数一次只能处理一个请求。如果您在第一个请求完成之前发出第二个请求,则函数的新实例将启动。
确保在函数完成后猫鼬不会关闭连接。