Express 快速中间件不开火

Express 快速中间件不开火,express,middleware,Express,Middleware,我是node.js新手,正在使用express validator作为中间件运行此文件,以验证我请求中的POST数据。但我得到了一个错误: (function(){ var express = require("express"); var expressValidator = require('express-validator'); var app = express(); app.all("*", function(req, res, next) { conso

我是node.js新手,正在使用
express validator
作为中间件运行此文件,以验证我请求中的POST数据。但我得到了一个错误:

(function(){
  var express = require("express");
  var expressValidator = require('express-validator');

  var app = express();

  app.all("*", function(req, res, next) {
    console.log("inside my middleware")
    next();
  });

  app.configure(function(){
    app.set("port", process.env.PORT || 3000);
    app.use(express.json());
    app.use(express.urlencoded());
    app.use(expressValidator());
    app.use(express.methodOverride());
    app.use(app.router);
    app.use(express.errorHandler());
  });

  app.post("/test", function(req, res){
    req.assert("email", "email is not valid").isEmail();
    res.send(200);
  })

  app.listen(app.get("port"), function(){
    console.log("API Server is available on port %s", app.get("port"));
  });

}());
它告诉我,POST上的
/test
请求没有方法断言,该断言应该是
快速验证器
中间件的一部分。我做错了什么?

根据它的说明,您还必须使用express BodyParser中间件:

app.use(express.bodyParser());
app.use(expressValidator([options])); // this line must be immediately after express.bodyParser()!

我读到bodyParser()创建了很多tmp文件,所以最好使用express.json()或urlencoded()您是否尝试使用bodyParser来解决问题?express validator中的中间件函数同时使用req.param和req.body,因此可能在没有它的情况下出错是
TypeError:Object#没有方法“assert”
是我得到的错误,同样
req.body
是未定义的。