1

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,在浏览器中呈现。但是,当我在它要求重新提交确认表单时刷新home.jade文件时,我想摆脱这个 - !http://localhost:3000Confirm Form Resubmission

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

4

1 回答 1

6

问题并不是真正由您的代码引起的,而是当您收到来自 POST 的响应时,浏览器想要再次发布。解决此问题的常用方法是重定向到同一页面。

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

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

更新以反映更新的问题

要呈现在重定向页面上发布的数据,可以使用会话。

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 });
});
于 2013-09-04T13:22:56.857 回答