gpt4 book ai didi

javascript - 使用 Express Validator .equals() 进行验证

转载 作者:行者123 更新时间:2023-12-01 01:06:09 25 4
gpt4 key购买 nike

我正在尝试验证对端点的请求,使用快速验证器的 .equals() 来检查用户类型的输入是否等于“储蓄”或“当前”。但 equals() 只选择第一个值。

我尝试使用||声明

 const creatAccount = [

check('type').not().isEmpty().withMessage('Please specify account type'),

check('type').equals('savings' || 'current').withMessage('Invalid Account Type: Account Type can be either "savings" or "current"'),

check('initialDeposit').not().isEmpty().withMessage('specify a Initial Deposit'),

(req, res, next) => {

const errors = validationResult(req);

const errMessages = [];

if (!errors.isEmpty()) {

errors.array().forEach((err) => {

errMessages.push(err.msg);

});
return res.status(401).json({
status: 401,
error: errMessages,
});
}
return next();
},
]

最佳答案

那是因为

'savings' || 'current'

首先被解析(作为' savings')并作为参数传递给.equals()。了解有关如何解决此问题的更多信息 || operator .

有几个选项:

const message = 'Invalid Account Type: Account Type can be either "savings" or "current"';
check('type').equals('savings').withMessage(message);
check('type').equals('current').withMessage(message);

此外,您可以将其移至函数

const validateType = type => {
const message = 'Invalid Account Type: Account Type can be either "savings" or "current"';
check('type').equals(type).withMessage(message);
}
validateType('savings');
validateType('current');

推荐选项

使用oneOf

const { check, oneOf } = require('express-validator/check');
const message = 'Invalid Account Type: Account Type can be either "savings" or "current"';
const creatAccount = [

check('type').not().isEmpty().withMessage('Please specify account type'),

oneOf([
check('type').equals('savings'),
check('type').equals('current'),
], message),

check('initialDeposit').not().isEmpty().withMessage('specify a Initial Deposit'),

(req, res, next) => {

const errors = validationResult(req);

const errMessages = [];

if (!errors.isEmpty()) {

errors.array().forEach((err) => {

errMessages.push(err.msg);

});
return res.status(401).json({
status: 401,
error: errMessages,
});
}
return next();
},
]

关于javascript - 使用 Express Validator .equals() 进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55617180/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com