javascript - Nestjs MongoDb Skema/Antara Muka Maklumat Penduaan
Saya telah mengikuti arahan untuk menggunakan MongoDb dengan Nestjs. Saya berjaya membuatnya berfungsi namun nampaknya saya melihat terdapat penggandaan maklumat yang agak tidak perlu (tidak DRY). Secara khususnya, nampaknya kita dikehendaki membuat skema Db dan juga antara muka yang sepadan dengan skema tersebut. Dalam kod saya sendiri ia kelihatan seperti ini:
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,
});
Baki kod saya ada dalam repositori ini jika anda mahukan lebih banyak konteks. Kod contoh rasmi ada di sini.
Adakah saya melakukan sesuatu yang salah atau adakah ini benar-benar diperlukan?
Jawapan #1
Anda boleh menyemak perpustakaan nest.js typegoose. Perpustakaan ini mencipta definisi skema daripada kelas TypeScript yang diberi anotasi.
export class Cat extends Typegoose {
@prop({ required: true })
name: string;
}
Sebagai alternatif, anda boleh menggunakan typeorm dengan mongodb, yang hanya memerlukan satu antara muka typescript yang dianotasi juga.
