오히려 좋아..

상황이 나쁘게만 흘러가는 것 같을 때 외쳐보자.. .

궁금한 마음으로 포트폴리오 보기

Web Programming/NestJS

[NestJS] Mongoose pre, post hook 설정

junha6316 2022. 2. 3. 09:32
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 {}