javascript - ExpressJS GET 和 POST 在同一路由上

标签 javascript node.js forms express

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

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

最佳答案

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

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

关于javascript - ExpressJS GET 和 POST 在同一路由上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40499095/

相关文章:

html - 谷歌浏览器表单元素重置不起作用

javascript - 在 API 帖子中注册用户时设置电子邮件和用户名的多重验证

javascript - MEAN Stack,为什么express在url中保留带有#的路由

javascript - javascript 中等待/ sleep 的更好方法

php - 访问控制允许源服务器端由 php

node.js - 304 状态代码出现在 Node Express 应用程序中除根路径之外的所有路径中

javascript - 更改ajax表单提交值和onClick状态

php - 对 $_POST 变量进行排序

javascript - 在一个页面中可以同时设置多少个 javascript setTimeout/setInterval 调用?

javascript - 是否可以为 DOM 元素而不是整个文档初始化 Angular.js?