📅  最后修改于: 2023-12-03 14:59:12.026000             🧑  作者: Mango
Adonis 是一个基于 Node.js 的 Web 应用框架,它提供了许多有用的特性来帮助你快速构建 Web 应用。其中一个重要的特性就是 Adonis 的验证器。
Adonis 验证器是一个强大的工具,它能够让你轻松地验证表单数据。不仅如此,它还可以帮助你检查模型实例或 API 路由中的数据。
Adonis 验证器是基于 indicative 构建的。它遵循了相同的验证器规则,并为你提供了更多实用的功能,如:
先来看看 Adonis 验证器最常见的使用场景:验证表单数据。比如,你想验证用户注册表单数据,以确保用户输入的数据符合你的要求。按照以下步骤:
在项目根目录下,打开终端,运行以下命令:
npm install @adonisjs/validator
在你的项目中,你会需要创建一个模块,用于存放验证规则。假设你的项目中已有 app
目录,你可以在 app/Rules
目录下创建一个新文件 Register.ts
。
在 Register.ts
文件中,你可以定义以下验证规则:
export default {
email: 'required|email|unique:users,email',
password: 'required|min:8',
}
以上代码将定义两个验证规则:
email
:必填项,且是有效的邮箱地址,且在 users
表中唯一。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 验证器提供了强大的验证功能,可以帮助你轻松地验证表单数据。它的语法简单明了,易于学习,可以极大地提高你的开发效率。