📜  导入验证器 adonisjs 5 - TypeScript (1)

📅  最后修改于: 2023-12-03 14:53:41.933000             🧑  作者: Mango

导入验证器 AdonisJS 5 - TypeScript

简介

AdonisJS 5 是一个基于 Node.js 的 MVC 框架,提供了许多内置的功能,如认证、路由、数据库、缓存等。在 AdonisJS 中,尤其是在使用 TypeScript 来构建项目时,验证器是一个必不可少的工具,它允许我们对传入的请求数据进行验证并进行相应的处理。

本文将介绍如何在 AdonisJS 5 中导入和使用验证器。

步骤
1. 添加验证器的依赖

在 AdonisJS 5 中,我们可以使用 @adonisjs/validator 包来添加验证器的依赖。该包内置了一些常见的验证器,如 requiredemailnumber 等。我们可以使用 npm 或 yarn 安装依赖,并将其添加到项目的依赖中。

npm install @adonisjs/validator

# 或

yarn add @adonisjs/validator
2. 导入验证器

完成依赖安装后,我们需要在项目中导入验证器。下面是一个简单的示例:

import { schema, validator } from '@adonisjs/validator'

class UserController {
  public async create() {
    // validate request data
    const validationSchema = schema.create({
      email: schema.string({ trim: true }, [rules.required(), rules.email()]),
      password: schema.string({}, [rules.required()]),
    })

    try {
      const validateData = await validator.validate({
        schema: validationSchema,
        data: request.body(),
      })

      // Handle validated data
    } catch (error) {
      // Handle error
    }
  }
}

在上面的示例中,我们通过导入 schemavalidator@adonisjs/validator 包中获取了两个对象。然后我们可以使用 schema.create() 方法创建一个验证器对象,并定义相应的验证规则;使用 validator.validate() 方法对传入的请求数据进行验证。

3. 定义验证规则

在创建验证器对象时,我们需要定义相应的验证规则。在 AdonisJS 中,验证规则可以通过 schema 对象中的一系列方法来定义,如:

  • schema.boolean()
  • schema.date()
  • schema.enum()
  • schema.number()
  • schema.string()
  • schema.file()

这些方法可以接收一些配置参数,如 trimlowerCaseupperCase 等。在方法的第二个参数中,我们可以使用 rules 对象中的一些方法来定义具体的验证规则,如 requiredemailminmax 等。

4. 完整示例

下面是一个完整的示例,展示了如何在 AdonisJS 5 中使用验证器:

import { schema, validator } from '@adonisjs/validator'

class UserController {
  public async create() {
    // validate request data
    const validationSchema = schema.create({
      email: schema.string({ trim: true }, [rules.required(), rules.email()]),
      password: schema.string({}, [rules.required()]),
      age: schema.number([rules.range(18, 60)]),
    })

    try {
      const validateData = await validator.validate({
        schema: validationSchema,
        data: request.body(),
      })

      // Handle validated data
      const { email, password, age } = validateData

      // ...

    } catch (error) {
      // Handle error
      return response.status(422).send(error.messages)
    }
  }
}
总结

AdonisJS 5 提供了强大的验证器功能,使我们能够轻松地对传入的请求数据进行验证。通过本文的介绍,您已经掌握了如何导入和使用验证器。现在,您可以尝试在自己的项目中使用它了!