`通过app.post('/',以expressjs呈现的页面上确认表单重新提交问题

html包含

form(name="Form", action="/", method="post") button(type='submit') submit 

Express服务器包含:

 app.post('/', function(req, res){ res.render('home', {user: req.body}); }); 

正如预期的那样, home.jade在浏览器中呈现。 但是当我刷新http://localhost:3000 home.jade文件它要求确认表格重新提交我想摆脱这一点 – Confirm Form Resubmission

home.jade文件是包含简单文本的简单文件。

这个问题并不是真的是由你的代码引起的,而是由于那些浏览器希望在你收到来自POST的响应时重新发布信息。 解决此问题的常见方法是redirect到同一页面。

 app.post('/', function(req, res){ res.redirect('/'); }); 

现在,当你刷新浏览器将重新获取GET'/'。

更新以反映更新的问题

要呈现redirect页面上发布的数据,可以使用会话。

 app.use(express.cookieSession()); app.post('/', function(req, res){ req.session.user = req.body; res.redirect('/'); }); 

而在GET的中间件“/”你必须确保使用该参数

 app.get('/', function(req, res){ res.render('home', { user: req.session.user }); });