📅  最后修改于: 2023-12-03 14:39:03.050000             🧑  作者: Mango
Adonis 是一款基于 Node.js 开发的 Web 框架,其中包含了强大的验证器,方便我们对用户输入的数据进行验证。本文介绍了如何使用 TypeScript 来使用 Adonis 验证器和如何自定义验证规则。
在安装 Adonis 验证器之前,我们需要先安装 Adonis。可以参考官方文档安装:https://adonisjs.com/docs/4.1/installation
接着,可以使用 npm 或者 yarn 安装 Adonis 验证器:
npm install @adonisjs/validator
yarn add @adonisjs/validator
首先,我们需要引入 Adonis 验证器:
import { schema, rules } from '@adonisjs/validator'
之后,我们可以使用 schema.create
方法来创建验证规则,例如:
const validationSchema = schema.create({
email: schema.string({}, [
rules.email(),
]),
password: schema.string({}, [
rules.minLength(6),
rules.maxLength(20),
]),
})
这里我们创建了一个验证规则,验证 email 和 password 字段是否符合我们的要求。具体的规则可以上官方文档查看:https://adonisjs.com/docs/4.1/validation-basics
然后,我们可以使用 await validate
方法来验证数据是否符合规则:
try {
const validatedData = await request.validate({
schema: validationSchema,
})
// 处理验证成功的逻辑
} catch (error) {
// 处理验证失败的逻辑
}
在这个例子中,我们使用了 request.validate
方法来验证数据。如果验证成功,validatedData
会包含验证后的数据,可以直接拿去使用。如果验证失败,会抛出错误,我们可以在 catch
中处理这个错误。
除了 Adonis 提供的默认验证规则,我们还可以自定义验证规则。例如,我们需要验证一个字符串是否是纯数字。我们可以这样定义规则:
rules.define('integer', async (value, _, { pointer, errorReporter }) => {
if (/^\d+$/.test(value)) {
return
}
errorReporter.report(pointer, 'integer', '只能输入纯数字')
})
然后就可以在验证规则中使用这个自定义规则了:
const validationSchema = schema.create({
age: schema.string({}, [
rules.integer(),
]),
})
这里我们定义了一个叫做 integer
的验证规则,用于验证一个字符串是否是纯数字。当验证失败时,会报出 '只能输入纯数字'
这个错误信息。
本文介绍了如何使用 TypeScript 来使用 Adonis 验证器和如何自定义验证规则。Adonis 的验证器非常强大,可以帮助我们轻松地对用户输入的数据进行验证,确保数据的正确性。同时,自定义规则也使得我们能够根据实际情况,定义符合我们自己需求的规则。