class-validator中文教程,在线培训前端开发

41 阅读3分钟

文末

js前端的重头戏,值得花大部分时间学习。

JavaScript知识

推荐通过书籍学习,《 JavaScript 高级程序设计(第 4 版)》你值得拥有。整本书内容质量都很高,尤其是前十章语言基础部分,建议多读几遍。

前端电子书

另外,大推一个网上教程 现代 JavaScript 教程 ,文章深入浅出,很容易理解,上面的内容几乎都是重点,而且充分发挥了网上教程的时效性和资料链接。

学习资料在精不在多,二者结合,定能构建你的 JavaScript 知识体系。

面试本质也是考试,面试题就起到很好的考纲作用。想要取得优秀的面试成绩,刷面试题是必须的,除非你样样精通。

这是288页的前端面试题

288页面试题 开源分享:docs.qq.com/doc/DSmRnRG…

class-validator可以说是一个简化验证的依赖库 (采用注释的方式进行校验)

但是缺少中文文档和过程,以自己的理解和对官网文档的阅读进行整理输出。

它的好兄弟class-transformer

class-validator官方提供的方式还不能直接对一个请求的返回值进行校验,它要求必须要是类的一个对象,所以需要做一些处理。
可以将一个json转成指定的类的对象

import { Type, plainToClass } from 'class-transformer';
//plainToClass   json转class
//type  指定隐式类型   
let users = plainToClass(User, userJson); 

1.引入

import {
  validate,
  validateOrReject,
  Contains,
  IsInt,
  Length,
  IsEmail,
  IsFQDN,
  IsDate,
  Min,
  Max,
} from 'class-validator';   //引入

2.输出类

export class Post {
  @Length(10, 20)
  title: string;

  @Contains('hello')
  text: string;

  @IsInt()
  @Min(0)
  @Max(10)
  rating: number;

  @IsEmail()
  email: string;

  @IsFQDN()
  site: string;

  @IsDate()
  createDate: Date;
}                  //导出类

3.声明类并调用类中的方法进行校验

let post = new Post();           //声明一个post
post.title = 'Hello'; // 不通过
post.text = 'this is a great post about hell world'; // 不通过
post.rating = 11; // 不通过
post.email = 'google.com'; // 不通过
post.site = 'googlecom'; // 不通过

4.验证监听

validate(post).then(errors => {
  // errors is an array of validation errors
  if (errors.length > 0) {
    console.log('validation failed. errors: ', errors);
  } else {
    console.log('validation succeed');
  }
});

5.错误输出

此方法返回一个validationError 对象 每一项如下

{
    target: Object; // 已经验证的对象.
    property: string; // 未通过验证的对象属性.
    value: any; // 未通过验证的值.
 constraints?: { // 验证失败并带有错误消息.
        [type: string]: string;
    };
    children?: ValidationError[]; // Contains all nested validation errors of the property
}

6.消息

在装饰器下提示指定信息

import { MinLength, MaxLength } from 'class-validator';

export class Post {
  @MinLength(10, {
    message: 'Title is too short',
  })
  @MaxLength(50, {
    message: 'Title is too long',
  })
  title: string;
}

在消息中可以使用特殊的$符号

$value - 正在验证的值
$property - 要验证的对象属性的名称
$target - 要验证的对象的类的名称
$constraint1, $constraint2, ... $constraintN - 由特定验证类型定义的约束

举个栗子 》》》》》》》》》

import { MinLength, MaxLength } from 'class-validator';

export class Post {
  @MinLength(10, {


#### 专业技能

一般来说,面试官会根据你的简历内容去提问,但是技术基础还有需要自己去准备分类,形成自己的知识体系的。简单列一下我自己遇到的一些题

* HTML+CSS
* JavaScript
* 前端框架
* 前端性能优化
* 前端监控
* 模块化+项目构建
* 代码管理
* 信息安全
* 网络协议
* 浏览器
* 算法与数据结构
* 团队管理
* **[开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】](https://docs.qq.com/doc/DSmRnRGxvUkxTREhO)**

最近得空把之前遇到的面试题做了一个整理,包括我本人自己去面试遇到的,还有其他人员去面试遇到的,还有网上刷到的,我都统一的整理了一下,希望对大家有用。



**其中包含HTML、CSS、JavaScript、服务端与网络、Vue、浏览器等等**

**由于文章篇幅有限,仅展示部分内容**

![](https://p3-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/b8babfacb8ea443bba1e8a0d1ba80138~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAg55So5oi3MzM5MTQ5MjgwNjA=:q75.awebp?rk3s=f64ab15b&x-expires=1771923934&x-signature=KhOKfqa8%2FAAwbeJdQBAKYukHtJg%3D)