Det er muligt at registrere et plugin til et givet skema ved hjælp af forFeatureAsync()
metoden for MongooseModule
sammen med en fabriksudbyder (dvs. useFactory
).
Efter eksemplet fra den officielle dokumentation :
@Module({
imports: [
MongooseModule.forFeatureAsync([
{
name: Cat.name,
useFactory: () => {
const schema = CatsSchema;
schema.plugin(require('mongoose-autopopulate'));
return schema;
},
},
]),
],
})
export class AppModule {}
Dog med mongoose-sequence
plugin er det nødvendigt at videregive det oprindelige Mongoose-forbindelsesobjekt til plugin-initialiseringen. Dette kan opnås ved at injicere forbindelsen til fabriksudbyderen med getConnectionToken
metode:
import {getConnectionToken, MongooseModule} from '@nestjs/mongoose';
import * as AutoIncrementFactory from 'mongoose-sequence';
@Module({
imports: [
MongooseModule.forFeatureAsync([
{
name: Cat.name,
useFactory: async (connection: Connection) => {
const schema = CatsSchema;
const AutoIncrement = AutoIncrementFactory(connection);
schema.plugin(AutoIncrement, {inc_field: 'id'});
return schema;
},
inject: [getConnectionToken('YOUR_CONNECTION_NAME')],
},
]),
],
})
export class AppModule {}