相关疑难解决方法(0)

如何在 NestJS 中编写嵌套 DTO

我是 NestJS 的初学者,我想为以下结构编写一个 DTO -

{
    something: {
        info: {
            title: string,
            score: number,
            description: string,
            time: string,
            DateOfCreation: string
        },
        Store: {
            item: {
                question: string,
                options: {
                    item: {
                        answer: string,
                        description: string,
                        id: string,
                        key: string,
                        option: string
                    }
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想为该嵌套数据对象编写一个 DTO。我找不到在 NestJS 中编写嵌套 DTO 的可靠示例。我是 NestJS 的初学者,之前从未使用过 DTO。所以请不要假设我知道一些事情。我将它与 Mongoose 一起使用。

javascript dto typescript nestjs

17
推荐指数
1
解决办法
2万
查看次数

使用nest.js控制器中的class-validator验证嵌套对象

我想在nest.js控制器中使用class-validator验证身体有效载荷。我的currency.dto.ts文件是这样的:

import {
  IsNotEmpty,
  IsString,
  ValidateNested,
  IsNumber,
  IsDefined,
} from 'class-validator';

class Data {

  @IsNotEmpty()
  @IsString()
  type: string;

  @IsNotEmpty()
  @IsNumber()
  id: number;
}

export class CurrencyDTO {
  @ValidateNested({ each: true })
  @IsDefined()
  data: Data[];
}
Run Code Online (Sandbox Code Playgroud)

在我的nest.js控制器中,我像这样使用它。

  @Post()
  @UseGuards(new AuthTokenGuard())
  @UsePipes(new ValidationPipe())
  addNewCurrency(@Req() req, @Body() data: CurrencyDTO) {
    console.log('data', data);
  }
Run Code Online (Sandbox Code Playgroud)

我的验证管道类是这样的:

import {
  PipeTransform,
  Injectable,
  ArgumentMetadata,
  BadRequestException,
  HttpException,
  HttpStatus,
} from '@nestjs/common';
import { validate, IsInstance } from 'class-validator';
import { plainToClass, Exclude } from 'class-transformer';

@Injectable()
export …
Run Code Online (Sandbox Code Playgroud)

javascript node.js typescript class-validator nestjs

3
推荐指数
2
解决办法
3079
查看次数

使用接口对传入请求进行 NestJS 类验证器

我需要通过类验证器使用接口来验证传入请求正文中特定字段的传入表单。

界面:

export enum Fields {
  Full_Stack_Dev = 'full stack dev',
  Frontend_Dev = 'frontend dev',
  Backend_Dev = 'backend dev',
}

export interface Experience {
  field: Fields;
  years: number;
}
Run Code Online (Sandbox Code Playgroud)

这是DTO课程:

@IsEnum(Languages)
  languages: Languages[];

  experience: Experience[]; //  Not sure which decorator to use for interfaces 
Run Code Online (Sandbox Code Playgroud)

node.js typescript class-validator nestjs

0
推荐指数
1
解决办法
4239
查看次数

标签 统计

nestjs ×3

typescript ×3

class-validator ×2

javascript ×2

node.js ×2

dto ×1