在提交表单之前,先进行两次请求响应操作
想要实现的效果如下
app.all('/form',functuon(req,res,next){
if(req.query.key1){
res.redirect('/form/getkey1');
}
if(req.query.key2){
res.redirect('/form/getkey2');
}
if(req.query.key3){
res.redirect('/form/getkey3');
}
});
但是实验过程中,第一个可以成功重定向,第二个就不能重定向,请大神指教,不胜感谢。
好像是因为res.redirect()只能使用一次,你请求一次服务器返回也应该是一次,而不是多次
路由参数用:param, 例如:路由写成"/form/:key", 你就可以通过req.params.key获得路由参数了。我不知道你为什么要这样写。
-
关于res.end()、res.redirect()、res.render()等 最好写成return式,不然可能会造成res重复返回,具体如下:
app.all('/form',functuon(req,res,next){ if(req.query.key1){ return res.redirect('/form/getkey1'); } if(req.query.key2){ return res.redirect('/form/getkey2'); } if(req.query.key3){ return res.redirect('/form/getkey3'); } });
关于你的bug, if(req.query.key1)表示key1不为转义false(null、undefined、false、0)的时候执行if内的语句,那么请问,你的key1会为转义false吗?如果永远不会,那就永远会执行第一个if。对你代码的理解是有三个key,key1、key2、key3会被提交,那key1就永远不为false。 说白了,不理解你这样写的原因... 你可以再补充下。