[英]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.