我想在我的应用程序中使用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()之前导入了我的路由文件,所以没有考虑到所有中间件! –