node.js - Hur man skapar och stänger en databasanslutning dynamiskt med Request Scope Providers i Nestjs?
Jag arbetar på ett projekt med Nestjs 7.x, Mongoose, Mongo, etc. När det gäller backend, i mitt användningsfall måste jag ändra anslutningen till en av mina databaser beroende på vissa villkor/parametrar som kommer från vissa förfrågningar. Jag kan ändra anslutningarna men jag vill stänga Mongoose-anslutningen efter att varje förfrågan har lyckats.
här är min kod
"@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 {}
Tack.