【问题标题】:what is the difference between DTO's,Interfaces,and schema in nest js嵌套js中的DTO,接口和模式有什么区别
【发布时间】:2021-07-19 13:29:58
【问题描述】:

我是 Nest js 的新手,我们有一些主题,例如 Dto、接口和架构,任何人都可以提供有关这些主题的清晰信息。

【问题讨论】:

标签: nestjs


【解决方案1】:

Dto、接口和 Schema 并不是 Nestjs 独有的。

数据传输对象是用于封装数据并将其从应用程序的一个子系统发送到另一个子系统的对象。用外行的话来说,它以定义的方式格式化数据。 示例:您需要在 Body 中传递的注册 Route 的数据。然后,您可以使用 DTO 仅过滤掉所需的信息并剥离其余信息。

//signUp.dto.ts
export class signUpDto {
    @IsNotEmpty({message: "Email cannot be empty."})
    @IsEmail() //class-validators can be ignored here.
    email: string;

    @IsNotEmpty({message: "Password cannot be Empty."})
    @MinLength(6,{message: "Password must be 6 characters."})
    @MaxLength(128,{message: "Password must be less than 128."})
    password: string;
}

现在,当您验证传入的请求正文时,它会检查正文中的这两个字段以及类验证器规则(如果已定义)。

接口:接口用于类型检查和定义可以传递给控制器​​或 Nest 服务的数据类型。来自 NestJs 文档:

接口是一种抽象类型,包含一组特定字段,类型必须包含这些字段才能实现接口

假设您有一个可以实现医生、教授和所有人的人机界面 示例:

interface Human {
    eyeColor: string;
    hairColor: string;
}
class Doctor implements Human{
    eyeColor: string;
    hairColor: string;
}

此外,模式是您在数据库中定义实体、完整性约束、关系等的方式。 一个模式可以有多个表,并且有许多关系,例如 OneToMany、ManyToOne、ManyToMany。

希望这能消除您的疑虑。

【讨论】:

    猜你喜欢
    • 2016-09-29
    • 2015-05-21
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 2020-03-07
    • 2018-02-20
    • 2010-10-02
    • 2020-09-16
    相关资源
    最近更新 更多