📜  adonis 验证器存在 - TypeScript (1)

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

Adonis 验证器存在 - TypeScript

Adonis 是一个基于 Node.js 的 Web 应用框架,它提供了许多有用的特性来帮助你快速构建 Web 应用。其中一个重要的特性就是 Adonis 的验证器。

什么是 Adonis 验证器?

Adonis 验证器是一个强大的工具,它能够让你轻松地验证表单数据。不仅如此,它还可以帮助你检查模型实例或 API 路由中的数据。

Adonis 验证器是基于 indicative 构建的。它遵循了相同的验证器规则,并为你提供了更多实用的功能,如:

  • 清理数据
  • 自定义错误消息
  • 多语言支持
Adonis 验证器的使用

先来看看 Adonis 验证器最常见的使用场景:验证表单数据。比如,你想验证用户注册表单数据,以确保用户输入的数据符合你的要求。按照以下步骤:

安装 Adonis 验证器

在项目根目录下,打开终端,运行以下命令:

npm install @adonisjs/validator
创建验证规则

在你的项目中,你会需要创建一个模块,用于存放验证规则。假设你的项目中已有 app 目录,你可以在 app/Rules 目录下创建一个新文件 Register.ts

Register.ts 文件中,你可以定义以下验证规则:

export default {
  email: 'required|email|unique:users,email',
  password: 'required|min:8',
}

以上代码将定义两个验证规则:

  1. email:必填项,且是有效的邮箱地址,且在 users 表中唯一。
  2. password:必填项,至少有 8 个字符。
编写控制器

接下来,在控制器中使用验证规则,验证表单数据。先引入 Adonis 验证器:

import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
import { schema, rules } from '@ioc:Adonis/Core/Validator'

然后,编写一个方法,获取用户提交的表单数据,并验证它们:

public async register({ request }: HttpContextContract) {
  const data = await request.validate({
    schema: schema.create({
      email: schema.string({}, [rules.email(), rules.unique({ table: 'users', column: 'email' })]),
      password: schema.string({}, [rules.minLength(8)]),
    }),
    messages: {
      'email.required': '请输入邮箱地址',
      'email.email': '请输入有效的邮箱地址',
      'email.unique': '该邮箱已被占用',
      'password.required': '请输入密码',
      'password.minLength': '密码长度不能少于 8 个字符',
    },
  })
}

如果验证通过,data 变量将包含表单数据。否则,将抛出一个带有错误消息的异常。

结语

Adonis 验证器提供了强大的验证功能,可以帮助你轻松地验证表单数据。它的语法简单明了,易于学习,可以极大地提高你的开发效率。