nestjs - Nestjs 是否支持多个 DTO 用于“推断”在单个路由上使用哪个控制器方法的模式?
问题描述
免责声明:我的愿望有明显和好的替代方案,但根据我对 Nestjs 的了解,如果以某种方式支持以下“模式”,我不会感到惊讶。
鉴于这两个 DTO:
export class AddExistingMemberDto {
@IsInt()
memberId: number;
}
export class AddNonExistingMemberDto {
@IsString()
username: string;
@IsEmail()
email: string;
}
Nestjs 可以检查请求体满足哪个 DTP,并在不同的控制器方法之间切换吗?
我试过了:
@Controller('group')
export class GroupController {
@Patch(':id/members/add')
addExistingMember(
@Body() addExistingMemberDto: AddExistingMemberDto,
) {
console.log('Existing', addExistingMemberDt);
}
@Patch(':id/members/add')
addNonExistingMember(
@Body() addNonExistingMemberDto: AddNonExistingMemberDto,
) {
console.log('Non-existing', addNonExistingMemberDto);
}
}
但这总是使用第一种方法调用。
基本原理:拥有一个检查 DTO 的控制器方法是一个不错的选择,但它确实需要我合并两个不同的 DTO 类。所以我只是好奇。
解决方案
推荐阅读
- sql - 使用内部连接和字符串插值更新列
- python - 使用 Paramiko 连接到 SSH/SFTP 服务器时出现“getaddrinfo failed”
- excel - 为什么 Countifs 不能使用超过 2 个标准?
- python - 如何使用 Python 代码比较 Appium 中的图片?
- r - 如何使用 R 在极坐标中倾斜表面
- c++ - 为什么 C++ 中的这个 lambda 包含每个引用?
- mongodb-query - 更新 Mongo DB 嵌套数组中的对象值
- c# - 将集合索引驱动器创建为“30000 毫秒后发生超时...”
- javascript - 找不到用于 CircleCI 构建的 ESLint
- google-sheets - 如何将 IF(AND) 与 ArrayFormula 结合起来