Node/Express:如何检查 POST 请求正文语法和响应错误?

T.L*_*Liu 2 rest node.js express

该项目是一个 Node/Express API 服务器,由swagger-node-codegen生成。它的 POST API 需要一个验证器来检查请求正文的语法。

以下是该问题的两个示例:

  1. 如果 POST 使用空请求正文,
  2. 如果使用包含比所需属性更多的属性的请求正文进行 POST,

服务器将接收请求正文并仍将正常处理,即向查询函数发送值。

检查 POST 请求正文的语法并响应错误的适当方法是什么?

小智 5

我使用中间件来检查 POST 正文值:https : //expressjs.com/en/guide/using-middleware.html

router.post('/create', validateEmpty, (req, res) => {
    res.status(200).send({result: "OK"})
})

const validateEmpty = (req, res, next) => {
    let value = req.body.value;
    if(value.length === 0) {
        return res.status(500).send({
            error: "empty value"
        });
    }
    // if string value is longer than 0, continue with next function in route
    next();
}
Run Code Online (Sandbox Code Playgroud)