【问题标题】:Are there better functions than redirect() and render()? [Node Application]有比redirect() 和render() 更好的函数吗? 【节点应用】
【发布时间】:2016-11-22 19:03:19
【问题描述】:

我目前正在创建一个节点投注应用程序,当我发布到数据库时,我需要重定向回索引页面。目前我的解决方法是呈现 index.hbs 页面,但这将在 mywebsite.com/bet 呈现,这是一个问题。我看过使用 res.redirect() 但问题是我无法携带我的会话信息(用户:req.user)或我希望在页面上呈现的集合项目(项目:doc)

app.post('/bet', function(req, res){
   // All betting functionality above and when completed do the following

        Collection.find(query).limit(10)
            .then(function(doc){
                res.render('index', {title: 'MyWebsite | Home', items: doc, user: req.user, 
                                     message: req.flash('bet-update')});
        });
 });

有没有更聪明的方法来让索引页面与相关数据一起呈现?完成后是否可以从 POST 函数中发送 GET 请求?我的 app.get('/') 函数完全符合我的需要,但是当我必须将相同的代码复制并粘贴到 Node 中的每个 POST 请求函数中时,情况就变得一团糟了。

【问题讨论】:

  • 嗯.....ajax....

标签: javascript node.js mongodb express


【解决方案1】:

我会POST 并重定向到显示您感兴趣的列表的页面。

想象一个简单的例子。你可以有一个GET /bets 页面。此页面将检索用户会话并显示用户投注列表。 然后用户决定下新赌注。您将调用POST /bets 来执行所有投注逻辑。此时您已准备好将用户重定向回您的GET /bets,这将显示更新后的列表。

重点是将查看逻辑提取到专用页面,并在使用POST 完成后重定向到该页面。适用于你的情况吗?

【讨论】:

  • 这是一个很好的建议,但也许我没有提供足够的信息。不存在 /bets 页面。用户可以像任何博彩网站一样在主页上查看投注市场,然后当他们添加到 betslip 并单击 Place Bet 它发布到 /bets 然后在那里进行处理,然后我需要再次重定向回主页但是来自 session/mongo 的额外数据。
  • 您不能将这些数据保存在会话中,如果有任何相关的内容要显示,请始终检查主页中的会话吗?
猜你喜欢
  • 1970-01-01
  • 2018-09-03
  • 1970-01-01
  • 2012-03-15
  • 1970-01-01
  • 2012-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多