在成功注册用户后,我目前看到的是一个空白页面,文字undefined. Redirecting to /app
位于顶部。
更新:我还应该提一下,在表单提交后,我被重定向到/ users。所以on / users我看到了上面提到的文字。
我认为这是因为req.redirect调用在user.save回调中,但我不确定修复是什么。
我正在使用mongoose进行ORM。
var User = require('../models/user');
module.exports = function(app) {
app.post('/users', function(req, res, next) {
var user = new User({
email: req.body.email,
password: req.body.password
});
user.save(function(err) {
if (err)
res.send(412, {message: err});
else
req.login(user, function(err) {
if (err !== undefined) return next(err);
res.redirect('/app', {
email: user.email,
id: user._id
});
});
});
});
};
答案 0 :(得分:2)
事实证明,req.login调用必须包含在password.authenticate回调中。网站上的example将该部分遗漏了。
user.save(function(err) {
if (err)
res.send(412, {message: err});
else
passport.authenticate('local', function(err, user) {
if (err) { return next(err) }
if (!user) { return res.redirect('/login') }
req.login(user, function(err) {
if (err) { return next(err); }
return res.redirect('/app', { email:user.email, id:user._id });
});
})(req, res, next);
});