Nestjs MongoDb Schema/Interface 信息复制

pet*_*eld 4 javascript mongoose mongodb node.js nestjs

我一直在遵循将MongoDb 与 Nestjs 结合使用的说明。我已经开始工作了,但是在我看来,存在相当不必要的信息重复(不是 DRY)。具体来说,我们似乎需要制作 Db 模式以及与该模式匹配的接口。在我自己的代码中,这看起来像这样:

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,
});
Run Code Online (Sandbox Code Playgroud)

如果您需要更多上下文,我的其余代码在此 repo中。官方示例代码在这里

我做错了什么还是真的需要这样做?

Kim*_*ern 7

您可以查看nest.js typegoose 库。该库从带注释的打字稿类创建模式定义。

export class Cat extends Typegoose {
  @prop({ required: true })
  name: string;
}
Run Code Online (Sandbox Code Playgroud)

或者,您可以将typeorm与 mongodb一起使用,它也只需要一个带注释的打字稿接口。