如何使用Node和Passportvalidation非空字段?

我需要validation非空字段的login(发布请求),但我得到这个错误:

TypeError: req.checkBody is not a function at D:\IDoo projects\ExpressGenerado\config\routes.js:76:9 

这是我的路线文件:

  app.post('/login',function(req,res){ req.checkBody('email', 'Email is required').notEmpty(); req.checkBody('password', 'Password is required').notEmpty(); var errors = req.validationErrors(); if (errors) { res.render('signup',{message: req.flash('loginMessage')}); } else{ passport.authenticate('local-login', { successRedirect : '/profile', // redirect to the secure profile section failureRedirect : '/login', // redirect back to the signup page if there is an error failureFlash : true // allow flash messages })(req,res); } }); 

而我的入口点的应用程序文件,添加app.use(expressValidator)后,我的networking挂起,不validation,它什么都不做:

 var express = require('express'); var expressValidator = require ('express-validator'); var app = express(); var multer = require('multer') var constants = require('constants'); var constant = require('./config/constants'); var port = process.env.PORT || 8042; var passport = require('passport'); var flash = require('connect-flash'); var path = require('path'); var morgan = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); var session = require('express-session'); var dateFormat = require('dateformat'); var now = new Date(); app.use(expressValidator); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: true})); require('./config/passport')(passport); // pass passport for configuration app.use(morgan('dev')); // log every request to the console app.use(cookieParser()); // read cookies (needed for auth) app.use(express.static(path.join(__dirname, 'public'))); app.set('views', path.join(__dirname, 'app/views')); app.set('view engine', 'ejs'); app.use(session({ secret: 'zomaareenstukjetekstDatjenietzomaarbedenkt' })); app.use(passport.initialize()); app.use(passport.session()); // persistent login sessions app.use(flash()); // use connect-flash for flash messages stored in session require('./config/routes.js')(app, passport); // load our routes and pass in our app and fully configured passport app.listen(port); console.log('The magic happens on port ' + port); 

你正在这样做:

 app.use(expressValidator); 

但是, expressValidator是一个返回中间件函数的函数,所以你需要像这样使用它:

 app.use(expressValidator());