首页 > 解决方案 > 如何使用 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 {}

谢谢。

标签: node.jsmongodbtypescriptmongoosenestjs

解决方案


推荐阅读