如何在 Node.js 中使用 joi 模块验证数据?
Joi 模块是一种流行的数据验证模块。该模块根据模式验证数据。有各种函数,如 optional()、required()、min()、max() 等,使其易于使用,并且是用于验证数据的用户友好模块。
介绍:
- 它易于上手且易于使用。
- 它是广泛使用和流行的数据验证模块。
- 它支持基于模式的验证。
joi模块的安装:
- 您可以访问链接安装 joi 模块。您可以使用此命令安装此软件包。
npm install joi
- 安装 multer 后,您可以使用命令在命令提示符中检查您的 joi 版本。
npm ls joi
- 之后,您可以创建一个文件夹并添加一个文件,例如 index.js,要运行此文件,您需要运行以下命令。
node index.js
- 需要模块:您需要使用这些行在文件中包含 joi 模块。
const Joi = require('joi');
文件名:index.js
javascript
const Joi = require('joi')
//User-defined function to validate the user
function validateUser(user)
{
const JoiSchema = Joi.object({
username: Joi.string()
.min(5)
.max(30)
.required(),
email: Joi.string()
.email()
.min(5)
.max(50)
.optional(),
date_of_birth: Joi.date()
.optional(),
account_status: Joi.string()
.valid('activated')
.valid('unactivated')
.optional(),
}).options({ abortEarly: false });
return JoiSchema.validate(user)
}
const user = {
username: 'Pritish',
email: 'pritish@gmail.com',
date_of_birth: '2020-8-11',
account_status: 'activated'
}
response = validateUser(user)
if(response.error)
{
console.log(response.error.details)
}
else
{
console.log("Validated Data")
}
javascript
var user = {
username: 'GH',
email: 'demo@',
date_of_birth: '2020-20-48',
account_status: 'abcd'
};
注意:在上面的程序中 abortEarly 设置为 false 以确保如果有多个错误,则所有错误都显示在终端中。如果设置为 true,则程序的执行将在遇到第一个错误时立即停止,并且只会在终端中显示该错误。
运行程序的步骤:
- 项目结构将如下所示:
- 确保您已使用以下命令安装了 joi 模块:
npm install joi
- 使用以下命令运行 index.js 文件:
node index.js
- 现在,如果没有发生错误,即验证用户数据,则会产生以下输出:
- 现在,如果我们针对无效数据验证用户,如下所示,那么将产生以下输出:
javascript
var user = {
username: 'GH',
email: 'demo@',
date_of_birth: '2020-20-48',
account_status: 'abcd'
};
If abortEarly is set to true the following output will be produced :
这就是使用 joi 模块验证数据的方法。市场上还有其他用于验证的模块,例如 express-validator 等。