📅  最后修改于: 2023-12-03 14:53:41.933000             🧑  作者: Mango
AdonisJS 5 是一个基于 Node.js 的 MVC 框架,提供了许多内置的功能,如认证、路由、数据库、缓存等。在 AdonisJS 中,尤其是在使用 TypeScript 来构建项目时,验证器是一个必不可少的工具,它允许我们对传入的请求数据进行验证并进行相应的处理。
本文将介绍如何在 AdonisJS 5 中导入和使用验证器。
在 AdonisJS 5 中,我们可以使用 @adonisjs/validator
包来添加验证器的依赖。该包内置了一些常见的验证器,如 required
、email
、number
等。我们可以使用 npm 或 yarn 安装依赖,并将其添加到项目的依赖中。
npm install @adonisjs/validator
# 或
yarn add @adonisjs/validator
完成依赖安装后,我们需要在项目中导入验证器。下面是一个简单的示例:
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
}
}
}
在上面的示例中,我们通过导入 schema
和 validator
从 @adonisjs/validator
包中获取了两个对象。然后我们可以使用 schema.create()
方法创建一个验证器对象,并定义相应的验证规则;使用 validator.validate()
方法对传入的请求数据进行验证。
在创建验证器对象时,我们需要定义相应的验证规则。在 AdonisJS 中,验证规则可以通过 schema
对象中的一系列方法来定义,如:
schema.boolean()
schema.date()
schema.enum()
schema.number()
schema.string()
schema.file()
这些方法可以接收一些配置参数,如 trim
、lowerCase
、upperCase
等。在方法的第二个参数中,我们可以使用 rules
对象中的一些方法来定义具体的验证规则,如 required
、email
、min
、max
等。
下面是一个完整的示例,展示了如何在 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 提供了强大的验证器功能,使我们能够轻松地对传入的请求数据进行验证。通过本文的介绍,您已经掌握了如何导入和使用验证器。现在,您可以尝试在自己的项目中使用它了!