Node Js和Express中的多步形式问题

时间:2014-03-14 11:28:39

标签: node.js express mongoose

在Node.js和Express中创建多步骤表单的最佳做法是什么,目前我正在使用以下方法:

app.post('/new/beer', function(req, res) {
  // Step one
  if (req.session.currentAction.step == 1) {
     req.session.currentAction.step = 2;
     res.render('beer-step-1');
  }
  // Step two
  if (req.session.currentAction.step == 2) {
     req.session.currentAction.step = 3;
     res.render('beer-step-2');
  }
  // Step three
  if (req.session.currentAction.step == 3) {
     req.session.currentAction.step = 4;
     res.render('beer-step-3');
  }
});

我认为我的问题在上面的代码中很明显。无论原始步长值是什么,后期请求总是到达并呈现beer-step-3模板。

我是否以错误的方式接近多步骤表格?或者有没有办法在某一点结束请求?

1 个答案:

答案 0 :(得分:0)

目前您使用的是req.session.currentAction,它可能未初始化为对象。您必须添加检查或初始化对象。如果没有这个,你在没有会话变量集的情况下请求页面时会暴露潜在的错误。确保使用===比较。

另外,为什么不将表单步骤存储为URL参数?