【发布时间】:2021-04-22 10:44:26
【问题描述】:
我对 NestJS 完全陌生。我已经看到在 NestJS 中,创建了一个模型来指定数据的详细信息,例如在创建一个简单的任务管理器时,当我们想要指定单个任务的外观时,我们在模型中指定它(示例如下):
export interface Task {
id: string;
title: string;
description: string;
status: TaskStatus;
}
export enum TaskStatus {
OPEN = 'OPEN',
IN_PROGRESS = 'IN_PROGRESS',
DONE = 'DONE',
}
但是,我后来遇到了 DTO,它再次描述了数据的形状。我的理解是在传输数据时使用 DTO,即它描述了您将发布或获取的数据类型。
我的问题是,当我已经使用 DTO 来描述数据的形状时,为什么还要使用模型?
另外,我读到使用 DTO,我们可以拥有单一的事实来源,如果我们意识到数据结构需要更改,我们不必在控制器和服务文件中单独指定它,但是,这仍然意味着我们必须更新模型?
【问题讨论】:
标签: nestjs dto data-transfer-objects