繁体   English   中英

在Node.js中发布请求后呈现视图

[英]Render a view after post request in Node.js

我通过ajax向服务器发送发布请求:

result.ejs

$.ajax({
    type: "POST",
    url: "/result",
    data: { score: score, rank: rank, name: name, email: email, historyLog: historyLog }
  });

我正在接收它并将数据保存到数据库中:

resultController.js

app.post('/result', urlencodedParser, function(req, res) {

      var user = new User({
        name: req.body.name,
        email: req.body.email,
        score: req.body.score,
        rank: req.body.rank,
        historyLog: req.body.historyLog
      });

      user.save(function(err) {
        if (err) throw err;
        console.log('User saved successfully!');

      });


  });

保存后,我想渲染一个新视图,但无法正常工作。 我试图在保存功能后添加此:

res.redirect('page')res.render('page') ,设置标题html / text

以上都不起作用。 有什么建议么?

AJAX通常用于精确,当你想要浏览其他地方,但跟我们的服务器在后台来代替。 要仍然按照自己的方式进行操作,请使用res.send("done"); 保存回调中, console.log('User saved successfully!); ,然后将其添加到您的ajax请求中:

success: function () { window.location.href = "/page"; }

实施整个过程的一种简单得多的方法是使用<form method="post" action="/result">并提交。

发布工作正常。 更好地使用表格发布。

app.post('/result', function(req, res) {

   new user({
    name: req.body.name,
    email: req.body.email,
    score: req.body.score,
    rank: req.body.rank,
    historyLog: req.body.historyLog
  }).save(function(err,doc) {
    if (err) throw err;
    else { res.render('pagename.ejs'); }
    console.log('User saved successfully!',doc);
   }); });

希望这会帮助你。

如果要在保存后呈现页面-将其添加到保存回调中,如下所示

 app.post('/result', urlencodedParser, function(req, res) { var user = new User({ name: req.body.name, email: req.body.email, score: req.body.score, rank: req.body.rank, historyLog: req.body.historyLog }); user.save(function(err) { if (err) throw err; console.log('User saved successfully!'); res.render('page');//ADD HERE redirect o render }); }); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM