我已经设置了一个AWS lambda来为MongoDB做一些数据保存。我想重用连接,所以每次调用lambda时都不必创建新连接。但是如果我打开db连接,Lambda处理程序的回调就不起作用了!
有什么我做错了创造这种行为吗?这是我的代码:
var MongoClient = require('mongodb').MongoClient
exports.handler = (event, context, callback) => {
MongoClient.connect(process.env.MONGOURL, function (err, database) {
//database.close();
callback(null, "Successful db connection")
});
}
答案 0 :(得分:3)
这是因为未设置context.callbackWaitsForEmptyEventLoop = false
。如果保留默认值true
,则回调不会导致Lambda返回响应,因为数据库连接使事件循环保持为空。
http://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-context.html