【发布时间】:2020-03-11 20:44:31
【问题描述】:
我是nestjs的新手。我现在一直在玩一个非常简单的 mongodb/mongoose db,里面有书籍、作者和流派。我开始对我真正需要的模型有一个模糊的认识,比如说书籍。
目前我有 2 个型号:
book.ts
export interface Book extends Document {
id?: string;
name: string;
year?: string;
authorId: string;
genreId: string;
}
- 需要注入服务构造函数
@InjectModel('Book') private readonly bookModel: Model<Book>并调用book.save()
CreateBookDto.ts
export class CreateBookDto {
@IsString()
@IsNotEmpty()
readonly name: string;
@IsOptional()
@IsNumberString()
@Min(1000)
@Max(3000)
readonly year: string;
@IsMongoId()
readonly authorId: string;
@IsMongoId()
readonly genreId: string;
}
- 据我了解 - 需要在创建期间验证对象
(当然,还有另一个文件中的猫鼬模式)
现在我在尝试序列化图书响应时遇到了一个问题,我开始认为我可能需要另一个模型 - Book 类,它允许我重命名属性、排除、公开等。该类基本上可以替换接口,除了
export class Book extends mongoose.Document
好像没用。
现在,我好像误解了设计 - 我不敢相信需要在代码库中维护 3 个模型。
问题
有人能帮我解释一下吗?我可以只用一个类来满足所有目的:提供类型、验证和序列化。如果是这样,如何使.save() 部分工作?
【问题讨论】:
标签: nestjs