req.checkBody('cgpa','cgpa is required').notEmpty();
我需要在cgpa中添加一个验证来检查cgpa是否必须小于4。我应该怎么做? 我正在使用expressjs验证器 谢谢你。
答案 0 :(得分:2)
您可以使用 express-validator 的custom(validator)
自定义验证器也可能抛出JavaScript异常(例如抛出新的Error())并返回虚假值以指示该字段无效。
您可以像任何其他快速中间件一样安装它
'use strict';
let http = require('http');
let express = require('express');
let app = express();
let bp = require('body-parser');
app.use(bp.json());
app.use(bp.urlencoded({
extended: false
}));
let server = http.createServer(app);
const {check, validationResult} = require('express-validator/check');
const PORT = 8888;
server.listen(PORT, () => {
console.log(`Server is up at ${PORT}`);
app.post('/foo', [
check('cgpa').exists().custom((value) => {
return value < 4;
}).withMessage('CGPA should be less than 4')
], (req, res) => {
const errors = validationResult(req);
if (!errors.isEmpty()) {
return res.status(422).json({
errors: errors.mapped()
});
}
return res.status(200).send({
msg: 'Hello world'
});
});
});
如果cgpa是&lt; 4,响应将是
{ “msg”:“Hello world” }
如果cgpa是> 4,响应将是一个错误
{ “错误”:{ “cgpa”:{ “位置”:“身体”, “param”:“cgpa”, “价值”:43, “msg”:“CGPA应小于4” } } }