import { Module } from '@nestjs/common';
import { MongooseModule } from '@nestjs/mongoose';
import {
Order,
OrderSchema,
OrderDocument,
} from './schemas/order.schma';
@Module({
imports: [
// 훅 없이 사용하고 싶다면 아래처럼 적어준다.
/*
MongooseModule.forFeature([{name:Order.name, schema: OrderSchema}])
*/
MongooseModule.forFeatureAsync([
{
name: Order.name,
imports: [AnyModule], // pre, post 훅을 수행하기 위해 필요한 모듈를 import
inject: [AnyService], // 구체적인 서비스를 넣어준다.
useFactory: (anyService: AnyService) => {
const schema = OrderSchema;
schema.pre('save', async function (this: any, next) {
// 저장 전 로직
});
schema.post('save',async function (this: any, doc: OrderDocument) {
// 저장 후 로직
}
},
);
return schema;
},
},
]),
],
providers: [OrderService],
exports: [OrderService],
})
export class OrderModule {}