node res.render更改视图但不更改URL

时间:2016-09-21 15:16:01

标签: angularjs node.js mongodb express pug

我从id向其jade view(后端)发送controller,然后控制器查询mongodb并将结果发送给新{{1} }} - jade view。 结果&视图显示但angular保持不变(上一个视图),因此如果我URL当前视图,则会重新加载上一个视图。
所以路线是:F5
想法?

玉石启动器视图

view->node->angular

控制器

exports.pushCart =(req,res)=> {

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='')

};

Mongoose populate subdoc

2 个答案:

答案 0 :(得分:1)

如果您希望更改网址,则需要重定向 像这样

 res.redirect('/some/path') 

答案 1 :(得分:0)

如果要在更改URL时传递信息,则必须使用会话才能在页面之间传输数据。

connect-flash与护照一起用于临时会话数据传输非常受欢迎。

res.redirect('/store/card')应该用于更改URL,但它不接受要传递的对象。这就是我们使用会话来传递信息的原因。

这是您的代码应为;

app.post('/yourPostURL', function(req, res){
  // Auth and validate here, then
  // Set a flash message by passing the key, followed by the value, to req.flash().
  req.flash('success', 'Put anything here')
  res.redirect('/store/card');
});

app.get('/store/card', function(req, res){
  // Get an array of flash messages by passing the key to req.flash()
  res.render('store/card', { messages: req.flash('success') });
});