我遇到了问题。
我正在使用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');
}
节点呈现result.html
,但我得到的网址是
https://localhost:3030/profile?variable1=xxx&variable2=yyy
问题是如何获得
https://localhost:3030/profile/xxx/yyy
而不是上面的URL?
答案 0 :(得分:1)
将您的路线定义为:/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');
});