📅  最后修改于: 2023-12-03 15:23:46.151000             🧑  作者: Mango
在应用程序中, 验证用户输入是一个很重要的任务, 如果你的应用接受了国际转账, 那么你就需要验证输入中的 BIC 或 Swift 代码. Express-validator 是一个常用的验证库, 它可以让我们轻松地通过自定义验证规则来处理这些验证任务.
npm install express-validator --save
在你的应用中设置验证器之前, 你需要先引用 express-validator
:
const { validationResult } = require('express-validator/check')
const { matchedData } = require('express-validator/filter')
const { check, sanitize } = require('express-validator')
现在, 我们可以轻松地使用 check
方法来指定我们的验证规则:
app.post('/signup', [
check('bic').matches(/^([a-zA-Z]){4}([a-zA-Z]){2}([0-9a-zA-Z]){2}([0-9a-zA-Z]{3})?$/),
check('swift').matches(/^([a-zA-Z]){4}([a-zA-Z]){2}([0-9a-zA-Z]){2}([0-9a-zA-Z]{3})?$/)
], (req, res) => {
// 这里放置请求的处理逻辑
})
在上面的代码中, 我们使用 check
方法来验证 bic
和 swift
字段是否符合 BIC 或 Swift 代码的格式要求.
check
方法可以接受多个参数, 包括检验规则, 接受一个错误消息的配置对象和一个方法链配置对象.
在处理逻辑中, 我们可以使用 validationResult
来获取所有错误信息并向客户端返回错误消息:
app.post('/signup', [
check('bic').matches(/^([a-zA-Z]){4}([a-zA-Z]){2}([0-9a-zA-Z]){2}([0-9a-zA-Z]{3})?$/),
check('swift').matches(/^([a-zA-Z]){4}([a-zA-Z]){2}([0-9a-zA-Z]){2}([0-9a-zA-Z]{3})?$/)
], (req, res) => {
const errors = validationResult(req)
if (!errors.isEmpty()) {
return res.status(422).json({ errors: errors.array() })
}
// 这里放置请求的处理逻辑
})
其中, validationResult
方法接受一个请求对象, 并返回一个包含所有错误消息的结果对象. 我们可以使用 isEmpty
方法来检查是否存在任何错误信息. 如果存在错误, 我们可以使用 array
方法来返回一个包含所有错误信息的数组.
我们可以使用 matchedData
方法来获取所有已经成功验证的输入参数:
app.post('/signup', [
check('bic').matches(/^([a-zA-Z]){4}([a-zA-Z]){2}([0-9a-zA-Z]){2}([0-9a-zA-Z]{3})?$/),
check('swift').matches(/^([a-zA-Z]){4}([a-zA-Z]){2}([0-9a-zA-Z]){2}([0-9a-zA-Z]{3})?$/)
], (req, res) => {
const errors = validationResult(req)
if (!errors.isEmpty()) {
return res.status(422).json({ errors: errors.array() })
}
const validatedData = matchedData(req)
// 这里放置请求的处理逻辑
})
Express-validator 提供了方便易用的API, 协助开发者快速构建可靠的表单验证逻辑. 在本文中, 我们展示了如何验证输入中的 BIC 或 Swift 代码. 同样的逻辑也适用于验证其他类型的表单输入.