Mongodb nestjs不同于mongoose模型提供程序和MongooseModule.forFeature
当我开始将我的nestjs应用程序连接到MongoDB时,我看到了两种不同的方法 1-使用MongooseModule.forFeature 2-使用提供者 在第一种方法中,我们有这样的模块Mongodb nestjs不同于mongoose模型提供程序和MongooseModule.forFeature,mongodb,mongoose,nestjs,Mongodb,Mongoose,Nestjs,当我开始将我的nestjs应用程序连接到MongoDB时,我看到了两种不同的方法 1-使用MongooseModule.forFeature 2-使用提供者 在第一种方法中,我们有这样的模块 @Module({ imports: [ MongooseModule.forFeature([{name: "COMPANY_MODEL", schema: CompanySchema}]), DatabaseModule ], controller
@Module({
imports: [
MongooseModule.forFeature([{name: "COMPANY_MODEL", schema: CompanySchema}]),
DatabaseModule
],
controllers: [CompanyController],
providers: [CompanyService,CityStateService],
})
并在服务中使用该模型:
constructor(
@InjectModel("COMPANY_MODEL")
private companyModel: Model<ICompany>) { }
我们在以下模块中提供:
@Module({
imports: [
DatabaseModule
],
controllers: [CompanyController],
providers: [CompanyService,CityStateService,...CompanyProviders],
})
export class CompanyModule { }
在服务中,我们使用简单注入:
constructor(
@Inject("COMPANY_MODEL")
private companyModel: Model<ICompany>) { }
我想知道nestjs中的这两种方法有什么不同,哪一种更好?这两种方法的唯一区别在于,第一种是由Nest软件包管理的正式内容,第二种是由您管理的内容。最终,这些方法实际上是相同的,唯一的区别是,第一种方法可能会随着时间的推移而减少重复性,而不会首先为提供的模型创建工厂功能。除此之外,没有区别,你应该选择你更喜欢的
constructor(
@Inject("COMPANY_MODEL")
private companyModel: Model<ICompany>) { }