자바스크립트 - Nestjs MongoDb 스키마/인터페이스 정보 중복
저는 Nestjs와 함께 MongoDb를 사용하는 방법에 대한 지침을 따라왔습니다. 다행히 작동은 하지만, 불필요하게 정보가 중복되는 것 같습니다 (DRY하지 않음). 특히, 우리는 Db 스키마를 만들고, 스키마와 일치하는 인터페이스도 만들어야 하는 것 같습니다. 제 코드에서는 이것이 대략 다음과 같이 보입니다:
import { Document, Schema } from 'mongoose';
export interface IBlogPost extends Document {
subject: string;
body: string;
authorId: string;
}
export const BlogPostSchema = new Schema({
subject: String,
body: String,
authorId: String,
});
더 많은 맥락이 필요하다면 나머지 코드는 이 저장소에 있습니다. 공식 예제 코드는 여기에 있습니다.
제가 뭔가 잘못하고 있는 건가요, 아니면 이게 정말 필요한 건가요?
답변 #1
nest.js typegoose 라이브러리를 확인할 수 있습니다. 이 라이브러리는 주석이 달린 타입스크립트 클래스에서 스키마 정의를 생성합니다.
export class Cat extends Typegoose {
@prop({ required: true })
name: string;
}
또는 MongoDB와 함께 typeorm을 사용할 수도 있으며, 이 경우에도 하나의 주석이 달린 TypeScript 인터페이스만 필요합니다.
