重定向不在ExpressJS中工作

时间:2013-05-31 05:20:13

标签: node.js express

我正在尝试重定向成功注册。我把这个基本代码拼凑在一起来测试原理:

app.post('/register', function(req, res, next) {
User.findOne({ username: req.body.username }, function (err, user) {
    if (err) { return done(err); }
    if (user) {
        res.send(400);
    } else {
        var newUser = new User({ username: req.body.username, password: passwordHash.generate(req.body.password)});
        newUser.save();
        req.logIn(newUser, function(err) {
            if (err) return next(err);
            return res.redirect('/my-events');
        })
    }
});
});

然而,当这触发时,我的浏览器会看到302,然后是/ my-events端点提供的页面的成功GET ...但没有重定向。

怎么了?使用res.redirect在浏览器加载端点时起作用,它似乎不能作为$ .post的结果。

1 个答案:

答案 0 :(得分:1)

您提到您使用$.post发送数据。如果是这种情况,那么服务器将无法重定向到实际页面。您需要做的是在post函数的回调函数中手动重定向页面,如此。

 $.post('your endpoint',function(){

    window.location = 'page to redirect to';

 });

这应该这样做。