ExpressJS GET和POST在同一条路线上

时间:2016-11-09 01:32:29

标签: javascript node.js forms express

基本上我试图在Express JS中用EJS作为渲染器整理问卷。我填写了页面,每个问题一个。可以使用app.get('/ question /:number?',routes.questions)通过静态链接访问页面;功能。我感到困惑的部分是如何使用相同的路径执行POST。当他们完成问题1时,我想在临时位置(变量)发布答案,并加载下一个问题。共有4个问题。当他们完成第4个问题时,html页面上会有一个不同的提交按钮......这个按钮应该取4个答案并将其保存在文件系统本地的json文件中。

我希望有人可以使用通用代码组合一个快速示例来给我一个如何完成这些的提示。一旦我开始工作,我认为整体功能对我来说应该更加清晰。谢谢!

1 个答案:

答案 0 :(得分:2)

您需要做的就是添加以下内容:

app.post('/question/:number', function(req, res) {
    var qid = Number(req.params.number);
    var answer = req.body.answer; // <input name="answer" .../>
    // store answer
    answers[qid] = answer;
    // load next question
    if (qid < 4) res.redirect('/question/' + (qid + 1));
    else res.redirect('/results');
});