Nest JS 结合了 DB 的插件和配置
Nest JS combine plugins and configurations for DB
我如何结合以下 2 个食谱?或者什么是理想的脚本?
1. Mongoose 插件对所有模式使用连接工厂
https://docs.nestjs.com/techniques/mongodb#plugins
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
@Module({
imports: [
MongooseModule.forRoot('mongodb://localhost/test', {
connectionFactory: (connection) => {
connection.plugin(require('mongoose-autopopulate'));
return connection;
}
}),
],
})
export class AppModule {}
2。使用 NestJS 配置模块配置数据库
https://docs.nestjs.com/techniques/configuration
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { ConfigModule, ConfigService } from '@nestjs/config';
@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true,
cache: true,
}),
MongooseModule.forRootAsync({
inject: [ConfigService],
imports: [ConfigModule],
useFactory: (config: ConfigService) => ({ uri: config.get<string>('database') })
})
]
})
export class AppModule { }
像下面这样的东西应该工作。 useFactory
预期 return 与 forRoot
接受的相同对象(或解析为同一对象的承诺),因此您应该能够 copy/paste 之间的任何选项二.
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { ConfigModule, ConfigService } from '@nestjs/config';
@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true,
cache: true,
}),
MongooseModule.forRootAsync({
inject: [ConfigService],
imports: [ConfigModule],
useFactory: (config: ConfigService) => ({
uri: config.get<string>('database'),
connectionFactory: (connection) => {
connection.plugin(require('mongoose-autopopulate'));
return connection;
}
})
})
]
})
export class AppModule { }
我如何结合以下 2 个食谱?或者什么是理想的脚本?
1. Mongoose 插件对所有模式使用连接工厂 https://docs.nestjs.com/techniques/mongodb#plugins
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
@Module({
imports: [
MongooseModule.forRoot('mongodb://localhost/test', {
connectionFactory: (connection) => {
connection.plugin(require('mongoose-autopopulate'));
return connection;
}
}),
],
})
export class AppModule {}
2。使用 NestJS 配置模块配置数据库 https://docs.nestjs.com/techniques/configuration
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { ConfigModule, ConfigService } from '@nestjs/config';
@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true,
cache: true,
}),
MongooseModule.forRootAsync({
inject: [ConfigService],
imports: [ConfigModule],
useFactory: (config: ConfigService) => ({ uri: config.get<string>('database') })
})
]
})
export class AppModule { }
像下面这样的东西应该工作。 useFactory
预期 return 与 forRoot
接受的相同对象(或解析为同一对象的承诺),因此您应该能够 copy/paste 之间的任何选项二.
import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import { ConfigModule, ConfigService } from '@nestjs/config';
@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true,
cache: true,
}),
MongooseModule.forRootAsync({
inject: [ConfigService],
imports: [ConfigModule],
useFactory: (config: ConfigService) => ({
uri: config.get<string>('database'),
connectionFactory: (connection) => {
connection.plugin(require('mongoose-autopopulate'));
return connection;
}
})
})
]
})
export class AppModule { }