【发布时间】:2017-01-29 22:26:45
【问题描述】:
我从jade view 向其controller(后端)发送id,然后控制器查询mongodb,并将结果发送到新的jade view-angular。
结果和视图出现但URL 保持不变(上一个视图),因此如果我F5 当前视图,它会重新加载上一个视图。
所以路线是:view->node->angular
想法?
jade 启动器视图
form(method="post")
input(type="hidden" name="id" value=cart._id)
input(type='hidden', name='_csrf', value=_csrf)
button.btn.product.btn-primary(type='submit', id=cart._id class='')
控制器
exports.pushCart = (req, res) => {
if (passport.isAuthenticated) {
Order.findOne({ _id: req.body.id})
.select('-_id productOrder')
.exec(function (err, orderObj) {
if(!err) {
var productOrder = orderObj.productOrder;
res.render('store/cart', {
title: 'MyCart',
angularApp: 'storeApp',
products: productOrder
});
}
});
} else {
res.redirect('/login');
}
};
【问题讨论】:
-
如果你想改变 URL,你必须使用
res.redirect('/some/path')。 -
@idbehold,在这种情况下,
res.render()将渲染视图并传递给它的数据,res.redirect()会将用户重定向到另一个页面(此时请求重新开始)跨度> -
是的,没错。您可以呈现视图以响应 POST 请求(浏览器中的 URL 将保持不变),或者您可以重定向这将更改浏览器中的 URL。您不能从服务器端同时执行这两项操作。
-
您可以(在客户端)使用 HTML5 History API 在页面加载时自动更改 URL。但是你不能完全用服务器端的节点来完成你想要的。
-
@idbehold,这是我的问题
标签: angularjs node.js mongodb express pug