我遇到了一个问题。
我正在使用 Node 和 express 。 Index.html
包含 2 个输入。
<form action="/profile" method="get">
<input id="variable1" name="variable1" type="text" placeholder="..."> //xxx
Select :
<select id="variable2" name="variable2">
<optgroup label="y">
<option value="variable">yyy</option>
</select>
在profile.js
中我得到:
router.get('/profile', function(req, res){
var var1 = req.params.variable1;
var var2 = req.params.variable2;
res.render('result');
}
Node 渲染result.html
,但我得到的URL是
https://localhost:3030/profile?variable1=xxx&variable2=yyy
The question is how to get
https://localhost:3030/profile/xxx/yyy
instead of the URL above?
最佳答案
将您的路线定义为:/profile/:var1/:var2
现在使用 req.params 访问它们:
var var1 = req.params.var1;
var var2 = req.params.var2;
更新答案:
虽然,它可能有点脏,但如果您无法更改提交表单的网址,您可以尝试此作为替代方案(尽管您可以在表单提交时使用 javascript 轻松做到这一点):
router.get('/profile', function(req, res){
var var1 = req.query.variable1;
var var2 = req.query.variable2;
res.redirect('/profile/'+var1+'/'+var2);
}
router.get('/profile/:var1/:var2', function( req, res ){
var var1 = req.params.variable1;
var var2 = req.params.variable2;
res.render('result');
});
关于javascript - URL查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38457471/