如何使用expressjs为cgpa添加验证

时间:2018-04-28 18:58:46

标签: node.js validation express

req.checkBody('cgpa','cgpa is required').notEmpty();

我需要在cgpa中添加一个验证来检查cgpa是否必须小于4。我应该怎么做? 我正在使用expressjs验证器 谢谢你。

1 个答案:

答案 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”           }       }   }