javascript - Nestjs MongoDb Esquema/Interfaz Información Duplicada
He estado siguiendo las instrucciones para usar MongoDb con Nestjs. He conseguido que las cosas funcionen, sin embargo, me parece que hay una duplicación de información bastante innecesaria (no DRY). Específicamente, parece que se requiere crear un esquema de Db y también interfaces que coincidan con el esquema. En mi propio código, esto se ve algo así:
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,
});
El resto de mi código está en este repositorio si quieres más contexto. El código de ejemplo oficial está aquí.
¿Estoy haciendo algo mal o esto es realmente necesario?
Respuesta #1
Puedes consultar la biblioteca nest.js typegoose. La biblioteca crea la definición del esquema a partir de una clase de TypeScript anotada.
export class Cat extends Typegoose {
@prop({ required: true })
name: string;
}
Alternativamente, puedes usar typeorm con mongodb, lo que también solo necesita una interfaz de typescript anotada.
