URL查询参数

时间:2016-07-19 11:39:12

标签: javascript node.js url express

我遇到了问题。

我正在使用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?

1 个答案:

答案 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');
});