Javascript ExpressJS在同一路线上获取和发布
基本上,我正在尝试用expressjs编写一份问卷,以EJS作为呈现器。我填充了页面,每个问题一页。可以使用app.get(“/question/:number?”,routes.questions)通过静态链接访问这些页面;功能。我感到困惑的是,我如何也能使用相同的路径执行POST。当他们完成问题1时,我想将答案发布到一个临时位置(变量),并加载下一个问题。总共有4个问题。当他们完成第四个问题时,html页面上会出现一个不同的提交按钮……这个按钮应该包含所有4个答案,并将其保存在文件系统本地的json文件中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个答案,并将其保存在文件系统本地的
我希望有人能用泛型代码为我提供一个快速的例子,告诉我如何完成这些。一旦我有一个工作,我认为整体功能应该更清楚我。谢谢 您只需添加如下内容:
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。我试图弄明白为什么它会这样做,因为语法似乎合乎逻辑;参数都是字符串。Tryvar qid=Number(请求参数编号)代码>除了一个奇怪的打嗝之外,一切正常。当我回答问题1时,“qid+1”实际上返回的是11而不是2。我试图弄明白为什么它会这样做,因为语法似乎合乎逻辑;参数都是字符串。Tryvar qid=Number(请求参数编号)代码>