node.js - Node Js 和 Express 中的多步骤表单问题

标签 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 模板。

我是否以错误的方式处理多步骤表单?或者有没有办法在某个时刻结束请求?

最佳答案

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

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

关于node.js - Node Js 和 Express 中的多步骤表单问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22403747/

相关文章:

node.js - Sequelize 预加载错误

用于 WebSocket 流式客户端应用程序的 Java/JVM 或 Node.js/V8?

javascript - Angular + Node(Express) + SSL 集成

node.js - Node js : Bluebird Promisify in Mongoose middleware

node.js - 使用 req.query.property 时出现“限制必须指定为数字”错误

javascript - 在 Mongoose 中搜索和从数组中删除的最佳方式

javascript - 什么是 JavaScript 运行时?

javascript - Koa JS - 调用 API 后无法发送响应。总是收到 404

node.js - Stripe : No such token Error

node.js - Mongoose Schema ObjectID 的数据透视表