javascript - Nestjs MongoDb Shema/Interfejs Informacije Duplikacija
Pratim upute za korištenje MongoDb-a s Nestjs-om. Sve sam uspio postaviti tako da radi, međutim čini mi se da postoji prilično nepotrebno dupliciranje informacija (nije DRY). Konkretno, čini se da smo obavezni napraviti Db šemu, kao i sučelja koja odgovaraju šemi. U mom vlastitom kodu to izgleda ovako:
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,
});
Ostatak mog koda je u ovom repozitoriju ako želiš više konteksta. Službeni primjer koda je ovdje.
Radim li nešto krivo ili je ovo stvarno potrebno?
Odgovor #1
Možete pogledati nest.js typegoose biblioteku. Biblioteka stvara definiciju sheme iz anotirane TypeScript klase.
export class Cat extends Typegoose {
@prop({ required: true })
name: string;
}
Alternativno možete koristiti typeorm s mongodb-om, koji također treba samo jedan anotirani TypeScript sučelje.
