我写了一个注册表单,我使用本地护照是工作,但我想添加express-validator来验证我的表单数据.我在路由器上添加验证,这是我的router / index.js代码: /* Handle Registration POST */router.post('/signup'
/* Handle Registration POST */ router.post('/signup', function(req, res) { req.assert('email', 'A valid email is required').isEmail(); var errors = req.validationErrors(); if(errors){ //No errors were found. Passed Validation! res.render('register', { message: 'Mail type fault', errors: errors }); } else { passport.authenticate('signup', { successRedirect: '/home', failureRedirect: '/signup', failureFlash : true }); } });
验证是有效的,但如果成功,那么网页将加载很长时间而没有响应.我已经搜索了护照文档,但不知道要修复它.
这是原始代码,它的工作原理
/* Handle Registration POST */ router.post('/signup', passport.authenticate('signup', { successRedirect: '/home', failureRedirect: '/signup', failureFlash : true }));
我想我可以使用jquery来检查,但我不这样做.因为我只想尝试使用带护照的验证器.
在LocalStrategy而不是路由器中进行验证应该可以正常工作:passport.use('signup', new LocalStrategy({ passReqToCallback: true }, function(req, username, password, callback) { /* do your stuff here */ /* req.assert(...) */ }));