javascript - Nestjs MongoDb Skjema/Grensesnitt Informasjonsduplisering
Jeg har fulgt instruksjonene for å bruke MongoDb med Nestjs. Jeg har fått ting til å fungere, men det virker for meg som om det er en ganske unødvendig duplisering av informasjon (ikke DRY). Spesielt ser det ut til at vi må lage både en Db-skjema og også grensesnitt som samsvarer med skjemaet. I min egen kode ser dette omtrent slik ut:
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,
});
Resten av koden min er i dette depotet hvis du vil ha mer kontekst. Den offisielle eksempel-koden er her.
Gjør jeg noe galt, eller er dette virkelig nødvendig?
Svar #1
Du kan sjekke ut nest.js typegoose-biblioteket. Biblioteket lager skjemadefinisjonen fra en annotert TypeScript-klasse.
export class Cat extends Typegoose {
@prop({ required: true })
name: string;
}
Alternativt kan du bruke typeorm med mongodb, som også bare trenger ett annotert TypeScript-grensesnitt.
