快速中间件验证

express middleware validation

我正在 express 4 路由中执行一些验证。验证正在使用中并在 post 上执行;我不明白如何让 post 在验证失败时不触发。

exports.setRoutes = function setRoutes(router) {
    var bodyParser = require("body-parser");
    var parseJson = bodyParser.json();

    router.use(routeLocation, parseJson, function (req, res, next) {
        if (req.method === 'POST') {
            var err = // do some validation;
            IF ERR EXISTS, DON'T FIRE POST BELOW
         }
    }

    router.post('/',parseJson, function(req,res) {
      // insert row into database
    }
}

没有办法不触发 post,因为它是服务器收到的信号,无法撤消。但是你可以防止坏的 POST 在你的系统上做任何事情。

以下是我们在 post 调用期间处理验证的方式:

function runValidationFunction(req,res){
    //do your validation here
}

 router.post('/',runValidationFunction,parseJson, function(req,res) {
      // insert row into database
 }

这样您的验证函数在您的逻辑之前得到 运行。希望有帮助