javascript - Nestjs MongoDb Schema/Interfaccia Informazioni Duplicazione
Ho seguito le istruzioni per usare MongoDb con Nestjs. Sono riuscito a far funzionare le cose, tuttavia mi sembra che ci sia una duplicazione di informazioni piuttosto inutile (non DRY). In particolare, sembra che siamo obbligati a creare lo schema del database e anche le interfacce che corrispondono allo schema. Nel mio codice questo appare più o meno così:
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,
});
Il resto del mio codice è in questo repository se vuoi più contesto. Il codice di esempio ufficiale è qui.
Sto facendo qualcosa di sbagliato o questo è davvero necessario?
Risposta n. 1
Puoi dare un'occhiata alla libreria nest.js typegoose. La libreria crea la definizione dello schema da una classe TypeScript annotata.
export class Cat extends Typegoose {
@prop({ required: true })
name: string;
}
In alternativa puoi usare typeorm con mongodb, che necessita solo di un'interfaccia TypeScript annotata.
