引言
在前端开发过程中,表单验证是不可或缺的一部分。而 express-dee-validator 是基于 Express 框架的表单验证库,可以帮助我们更方便地验证表单里的数据。本文就详细介绍 express-dee-validator 的使用方法,并配有相关示例代码。
express-dee-validator 基础使用
安装
在终端中,输入以下命令来安装 express-dee-validator:
npm i express-dee-validator
安装完成之后,应在项目中加入依赖项:
const expressValidator = require('express-dee-validator');
使用
在使用前,应确保 Express 应用程序已经初始化。
const express = require('express'); const app = express();
在初始化之后,可以使用以下代码来初始化 express-dee-validator:
app.use(expressValidator());
在这之后,就可以在请求中使用验证器函数。
验证器函数
express-dee-validator 提供了许多内置验证器。以下是其中一些此库内置的验证器:
- isEmail() – 验证电子邮件地址格式是否正确。
- isMobilePhone() – 验证手机号码的格式是否正确,支持多个国家。
- isURL() – 验证 URL 地址格式是否正确,支持 http, https, ftp 等。
- isNumeric() – 验证字符串是否只含数字。
可以通过以下方式来使用其中一个函数:
req.checkQuery('email', 'Email is invalid.').isEmail();
以上代码中的 checkQuery() 函数用于验证查询字符串。如果需要验证其他字段类型,可以使用 check('fieldname', 'message') 或 checkBody(),checkParams()等函数来替代。
错误处理
如果验证器函数提供的错误无法通过以下命令自动检测:
const errors = req.validationErrors();
可以自定义错误响应。
app.use(function (err, req, res, next) { res.status(422).json(err); });
以上代码在出现错误时,将向客户端响应。
express-dee-validator 进阶使用
自定义验证规则
尽管 express-dee-validator 提供了内置的验证器函数,但在实际开发中,我们经常需要使用自己的验证规则。这时,我们可以使用自定义验证规则。
请看以下示例:
-- -------------------- ---- ------- ---------------------------------------------- - -------- ----- - ------ --- --- ---------- -- -------------------- ----- ---- -- - ------------------------------------ ----- ------ - ----------------------- -- -------- - ---------------------- ------ --- - ---- - -------------------- - - --
通过上述代码,我们给验证器添加了一个新的验证规则 isAwesome(),该规则检查字符串是否为单词 “awesome”。当检查时,可以使用 checkBody()、checkParams()、checkQuery() 等。
自定义错误消息
如果您需要提供与内置消息不同的错误消息,可以使用 withMessage() 函数。
req.check('email', 'Email is invalid.').isEmail().withMessage('Invalid email address provided.');
通过以上代码,我们可以使用与内置错误消息不同的消息。
自定义参数化错误消息
如果需要为消息中提供更多上下文,例如将字段名添加到错误消息中,可以使用匿名函数。在该函数中,第一个参数是一个消息,第二个参数是验证器函数数据(必须有,否则该函数将不执行)中的参数。
以下是一个使用自定义错误消息的示例:
req.check('email').custom((email)=>{ const emailParts = email.split('@'); if(emailParts.length > 1 && emailParts[1] !== 'example.com'){ throw new Error('Invalid domain.'); } }).withMessage('Email must be from example.com domain.');
在以上示例中,我们将错误消息设置为:‘Email must be from example.com domain.’,这样我们的用户就可以获得关于错误更精确的描述信息。
进行异步验证
如果您想使用异步调用来处理验证,请使用 promise。
-- -------------------- ---- ------- ---------------------- ------ --- ------------------------------- -- - ------ --- ----------------- ------- -- - ------------- -- - -- ------ --- ------------------ - --------- - ---- - ---------- - -- ------ --- ---
在上述代码中,我们对电子邮件进行基本验证,然后使用自定义值为“joe@example.com”的异步验证。
结论
本篇文章深入讲解了基于 Express 框架的验证库 express-dee-validator 的使用方法,包括基础使用及进阶使用。从操作上详细展示了如何快速便捷地验证表单内容,提高前端开发效率。同时,也完整地讲述了自定义验证规则、消息及异步验证等高级使用方法。可以对前端开发者实际工作起到参考和指导的作用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600558d581e8991b448d626f