【问题标题】:ExpressJS GET and POST on same routeExpressJS GET 和 POST 在同一条路线上
【发布时间】:2016-11-09 01:32:28
【问题描述】:

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

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

【问题讨论】:

    标签: javascript node.js forms express


    【解决方案1】:

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

    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');
    });
    

    【讨论】:

    • 一切正常,除了一个奇怪的打嗝。当我在问题 1 上时,'qid + 1' 实际上返回 11 而不是 2。我试图弄清楚为什么它会这样做,因为语法似乎合乎逻辑。
    • 对;参数都是字符串。试试var qid = Number(req.params.number);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多