node.js - 如何使用 Nestjs 中的请求范围提供程序动态创建和关闭数据库连接?
问题描述
我正在使用 Nestjs 7.x、Mongoose、Mongo 等进行项目,关于后端,在我的用例中,我必须根据来自某些请求的某些条件/参数更改我的一个数据库的连接. 我可以更改连接,但我想在每个请求成功后关闭猫鼬连接。
她的是我的代码
"@nestjs/mongoose": "7.0.0",
"mongoose": "5.10.1"
/*************************
* mognoose.service.ts
*************************/
import { Inject, Injectable, Scope } from '@nestjs/common';
import { MongooseOptionsFactory, MongooseModuleOptions } from '@nestjs/mongoose';
import { REQUEST } from '@nestjs/core';
import { Request } from '@nestjs/common';
@Injectable({ scope: Scope.REQUEST })
export class MongooseConfigService implements MongooseOptionsFactory {
constructor(
@Inject(REQUEST) private readonly request: Request,) {
}
createMongooseOptions(): MongooseModuleOptions {
return {
uri: request.params.uri, // Change this to whatever you want; you have full access to the request object.
};
}
}
/*************************
* mongoose.module.ts
*************************/
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { MongooseConfigService } from 'mognoose.service';
@Module({
imports: [
MongooseModule.forRootAsync({
useClass: MongooseConfigService,
}),
]
})
export class DbModule {}
谢谢。
解决方案
推荐阅读
- google-apps-script - 偶尔例外:无法发送电子邮件:没有收件人(onFormSubmit)
- javascript - 删除行首的字符,但从第 2 行开始
- asp.net - 如何在 ASP.Net Framework 项目中实例化 QueueClient 对象?
- c# - 更新最新 SDK 后 dotnet ef 无法正常工作
- python - 当我从 C++ 调用 python 时无法导入库
- firefox - Firefox 中的“browser.storage.local”在浏览器重启时被清除
- python - 在不使用 sklearn 的情况下使用 SGD(LogLoss 随每个 epoch 增加)
- jmeter - 恒定吞吐量计时器无法正常工作
- java - 将新的 Json 属性添加到 Json 字符串响应
- amazon-web-services - Docker ECS 插件 AWS 上下文未设置 docker ecs setup