Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ExpressJS在同一路线上获取和发布_Javascript_Node.js_Forms_Express - Fatal编程技术网

Javascript ExpressJS在同一路线上获取和发布

Javascript ExpressJS在同一路线上获取和发布,javascript,node.js,forms,express,Javascript,Node.js,Forms,Express,基本上,我正在尝试用expressjs编写一份问卷,以EJS作为呈现器。我填充了页面,每个问题一页。可以使用app.get(“/question/:number?”,routes.questions)通过静态链接访问这些页面;功能。我感到困惑的是,我如何也能使用相同的路径执行POST。当他们完成问题1时,我想将答案发布到一个临时位置(变量),并加载下一个问题。总共有4个问题。当他们完成第四个问题时,html页面上会出现一个不同的提交按钮……这个按钮应该包含所有4个答案,并将其保存在文件系统本地的

基本上,我正在尝试用expressjs编写一份问卷,以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');
});
app.post('/question/:number',函数(req,res){
var qid=编号(要求参数编号);
var answer=req.body.answer;//
//存储应答
答案[qid]=答案;
//加载下一个问题
if(qid<4)res.redirect('/question/'+(qid+1));
else res.redirect('/results');
});

您只需添加如下内容:

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');
});
app.post('/question/:number',函数(req,res){
var qid=编号(要求参数编号);
var answer=req.body.answer;//
//存储应答
答案[qid]=答案;
//加载下一个问题
if(qid<4)res.redirect('/question/'+(qid+1));
else res.redirect('/results');
});

除了一次奇怪的打嗝之外,一切正常。当我回答问题1时,“qid+1”实际上返回的是11而不是2。我试图弄明白为什么它会这样做,因为语法似乎合乎逻辑;参数都是字符串。Try
var qid=Number(请求参数编号)除了一个奇怪的打嗝之外,一切正常。当我回答问题1时,“qid+1”实际上返回的是11而不是2。我试图弄明白为什么它会这样做,因为语法似乎合乎逻辑;参数都是字符串。Try
var qid=Number(请求参数编号)