javascript - Informații despre Schema/Interfață Nestjs MongoDb Duplicați


Am urmat instrucțiunile pentru utilizarea MongoDb cu Nestjs. Am reușit să fac lucrurile să funcționeze, totuși mi se pare că există o duplicare oarecum inutilă a informațiilor (nu este DRY). În mod specific, se pare că suntem obligați să creăm un schema pentru Db și, de asemenea, interfețe care să corespundă schema. În propriul meu cod, acest lucru arată cam așa:

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,
});

Restul codului meu se află în acest depozit dacă vrei mai mult context. Codul oficial de exemplu este aici.

Fac ceva greșit sau este chiar necesar acest lucru?

Răspuns #1

Poți verifica biblioteca nest.js typegoose. Biblioteca creează definiția schemei dintr-o clasă TypeScript adnotată.

export class Cat extends Typegoose {
  @prop({ required: true })
  name: string;
}

Alternativ, poți folosi typeorm cu mongodb, care are nevoie doar de o interfață TypeScript adnotată.