我正在尝试使用 DTO 在 Nest.js 中为我的控制器定义我的数据。
我正在关注教程
我已经在其中创建了我的 DTOsrc/controllers/cats/dto/create-cat.dto.js
export class CreateCatDto {
readonly name: string;
readonly age: number;
readonly breed: string;
}
不过,我对如何将其导入应用程序感到困惑。文档实际上并没有说明它需要导入,所以我认为 Nest 在幕后做了一些魔术?尽管我有一种感觉,但事实并非如此。
我正在尝试将其直接导入我的控制器中:
import { CreateCatDto } from './dto/create-cat.dto';
但这会引发错误:
Unexpected token (2:11)
1 | export class CreateCatDto {
> 2 | readonly name: string;
| ^
3 | readonly age: number;
4 | readonly breed: string;
5 | }
DTO 代码是直接从嵌套文档中删除的,因此代码不应该有问题(尽管readonly name: string;
看起来不像我以前遇到过的 javascript)。
作为参考,这是我尝试使用 DTO 的猫控制器的其余部分
import { Controller, Bind, Get, Post, Body, Res, HttpStatus } from '@nestjs/common';
// import { CreateCatDto } from './dto/create-cat.dto';
@Controller('cats')
export class CatsController {
@Post()
@Bind(Res(), Body())
async create(res, body, createCatDto) {
console.log("createCatDto", createCatDto)
res.status(HttpStatus.CREATED).send();
}
@Get()
findAll() {
return [];
}
}
是否需要导入 DTO 类,然后使用绑定到我的创建函数Res()
,Body()
或者嵌套在幕后做了一些魔术,因为他们从未声明要在文档中导入它?
谢谢。