【问题标题】:Mongoose Connection outside NestJS for Lambda用于 Lambda 的 NestJS 之外的 Mongoose 连接
【发布时间】:2020-01-06 23:47:24
【问题描述】:
【问题讨论】:
标签:
mongodb
mongoose
lambda
nestjs
【解决方案1】:
我的第一印象是明确关闭连接,或设置超时。但是,对于这些选项中的任何一个,我似乎都找不到任何接近nest.js 官方文档的内容。
所以:您有一个不会自动关闭空闲连接的数据库和一个从不关闭连接的中间件,因此您的系统正在被堵塞。您可以尝试在它们之间放置一些东西,等待空闲并断开连接(甚至可能会说服某些防火墙这样做)。但是,考虑到这些产品的正确连接处理是多么不可能和/或没有记录,我建议您重新考虑您的技术选择。
【解决方案2】:
你必须在你的函数被执行后调用app.close()来关闭猫鼬连接。
AWS Cognito Lambda 触发器示例:
import { INestApplicationContext } from '@nestjs/common';
let cachedApp: INestApplicationContext;
async function bootstrap() {
if (!cachedApp) {
cachedApp = await NestFactory.createApplicationContext(
PreTokenGenerationModule
);
}
return cachedApp;
}
export async function handler(
event: CognitoUserPoolTriggerEvent,
context: Context,
callback: Callback
) {
const app = await bootstrap();
const preTokenGenerationService = app.get(PreTokenGenerationService);
await preTokenGenerationService.execute(event, context, callback);
app.close();
}