在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模板。
我是否以错误的方式接近多步骤表格?或者有没有办法在某一点结束请求?
答案 0 :(得分:0)
目前您使用的是req.session.currentAction,它可能未初始化为对象。您必须添加检查或初始化对象。如果没有这个,你在没有会话变量集的情况下请求页面时会暴露潜在的错误。确保使用===比较。
另外,为什么不将表单步骤存储为URL参数?