Cell - 校验组件
将 @celljs/validation 添加到依赖项以检查请求数据:类型为类的控制器或 RPC 参数会变成它的实例(class-transformer)并用其 class-validator 装饰器验证。失败时返回 400 和 JSON 格式的错误。
ts
import { IsInt, IsString, Min } from 'class-validator';
export class CreateUser {
@IsString()
name: string;
@IsInt()
@Min(0)
age: number;
}
@Controller('users')
export class UserController {
@Post()
create(@Body() user: CreateUser) { ... }
}没有这个包时 @celljs/web 把这样的参数作为原始请求数据传递,仍然转换 String、Number、Boolean 和 Date 参数(TypeConversionPipe)。
yaml
validation:
detailedOutputDisabled: false # true:返回 400,不带错误
transformEnabled: true # false:把请求数据而非实例传给方法
transformOptions: {} # plainToInstance 的选项
validatorOptions: {} # validate 的选项,例如 whitelist: true