【发布时间】:2015-10-02 23:42:05
【问题描述】:
我正在使用 Mongoose 和 Express.js 。
我的 Post 请求如下所示:
$('#update').on('click', function() {
var uname = $('#username').val();
var name = $('#name').val();
var json = {
user_name: name,
user_username: uname,
};
$.post("/saveprofile", json, function(data, error, xhr) {
if(!err)
window.location.href = "/feed";
});
});
这就是我处理请求的方式:
app.post('/saveprofile', isLoggedIn, function(req, res) {
var username = req.body.user_username;
var uname = req.body.user_name;
User.findOne({$or:[{"facebook.email":req.user.facebook.email},{"local.email":req.user.local.email}]}, function (err, user){
user.name = uname;
user.username=username;
user.save();
res.send({redirect: '/feed'});
})
});
我的文档已成功添加到数据库中,但我想要的是,当发生这种情况时,它应该重定向到新页面 /feed 。上面的 sn-ps 提到了我尝试过的两种方法。但我没有结果。它不会重定向!
编辑:
带有异常处理的测试给出undefined
app.post('/saveprofile', isLoggedIn, function(req, res) {
var username = req.body.user_username;
var uname = req.body.user_name;
try{
User.findOne({$or:[{"facebook.email":req.user.facebook.email},{"local.email":req.user.local.email}]}, function (err, user){
user.name = uname;
user.username=username;
user.save();
res.redirect("http://stackoverflow.com")
});
}
catch(ex){
console.log(ex) ;
}
});
编辑 2: 我尝试了一个示例请求......即使它似乎没有重定向!
app.post('/test', isLoggedIn, function(req,res){
res.redirect("http://www.stackoverflow.com")
})
【问题讨论】:
-
尝试将
res.send({redirect: '/feed'});替换为res.redirect('http://stackoverflow.com');。你会被重定向到 so 吗? -
顺便说一句,您的数据更新了吗?这可能是两个重定向失败的唯一原因。
-
数据正在更新..是的!重定向不起作用!
-
尝试用 try..catch 将
findOne包围为try { //findOneCode } catch (ex) {console.log(ex)}。查看服务器控制台中弹出的任何内容。 -
它给了
undefined!