在 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/