无法在节点js中发布

时间:2017-12-14 18:08:52

标签: node.js mongodb express mongoose passport.js

我有节点js(expressjs)网站。在这个网站上我可以登录或注册。 例如:

router.get("/signin", function(req, res) {
    res.render("signin");
});

router.post('/signin', passport.authenticate('login', {
    succsessRedirect: '/',
    failureRedirect: '/signin',
    failureFlash: true
}));

我也有注册码。

router.post('/signup', function(req, res, next) {
    var username = req.body.username;
    var email = req.body.email;
    var password = req.body.password;
    var fname = req.body.fname;
    var age = req.body.age;

    User.findOne({ username: username }, function(err, user) {
        if (err) {
            return next(err);
        }
        if (user) {
            req.flash('error', 'User already exists');
            return res.redirect('/signup');
        }

        var newUser = new User({
            username: username,
            email: email,
            password: password,
            fname: fname,
            age: age
        });
        newUser.save(next);
    });
}, passport.authenticate('login', {
    succsessRedirect: '/',
    failureRedirect: '/signup',
    failureFlash: true
}));

一切正常,所以当我尝试注册时,我的网站在数据库中注册我(我使用mongoDB和护照js第三方中间件)但是当护照应该将我重定向到主页“/”它没有' Ť 并出现错误“无法发布/注册”。登录时也会出现此问题。你有什么建议我做的?提前谢谢。

1 个答案:

答案 0 :(得分:0)

您似乎需要更改代码

newUser.save(next);

类似

newUser.save(function(err, newUser){return res.redirect('/');});