我想在我的應用程序中使用express-validator。快速驗證錯誤與快速驗證程序
這裏是我的app.js代碼:
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
app.use(express.logger('dev'));
app.use(express.methodOverride());
app.use(app.router);
app.use(express.bodyParser());
app.use(express.urlencoded());
app.use(express.json());
app.use(expressValidator());
下面是我路線:
module.exports = function(app) {
app.post('/login', userController.login);
}
這裏是我的登錄代碼:
exports.login = function(req, res, next) {
req.assert('email', 'Email not valid').isEmail();
var errors = req.validationErrors();
if (errors) {
return res.redirect('/login');
}
passport.authenticate('local', function(err, user, info) {
// do stuff
})(req, res, next);
};
當我嘗試發佈到/登錄我得到了follwoing錯誤信息的內容:
TypeError: Object # <IncomingMessage> has no method 'assert'
我看到了,這可能涉及與app.use一個問題,但現在我卡住了...
編輯1: 我我app.use改變這些的,但它並沒有解決我的問題:
app.use(express.logger('dev'));
app.use(express.methodOverride());
app.use(express.bodyParser());
app.use(express.urlencoded());
app.use(express.json());
app.use(expressValidator());
app.use(app.router);
我的壞...我在app.use()之前導入了我的路由文件,所以沒有考慮到所有中間件! –