model injection

Nest 모듈에서 모델이 주입되는 순서

Mongoose 모델을 서비스에서 쓰려면 먼저 DB 연결을 만들고, 모듈에 스키마를 등록한 뒤, InjectModel로 같은 이름의 모델 토큰을 받아야 한다.

순서: connect → schema register → model inject모델 이름과 스키마 등록이 어긋나면 주입이 깨진다.

Nest + Mongoose 등록 순서

1forRoot

MongoDB 연결 URI와 옵션을 설정한다.

2Schema

@Schema와 Prop으로 문서 구조를 정의한다.

3forFeature

현재 모듈에서 사용할 name/schema 쌍을 등록한다.

4InjectModel

서비스 생성자에 Model<UserDocument>를 주입한다.

5Service

create, find, update 같은 모델 API를 호출한다.

핵심 코드 경계

MongooseModule.forFeature([{ name: User.name, schema: UserSchema }])
constructor(@InjectModel(User.name) private users: Model<UserDocument>) {}