在express中,获取包含特殊字符的request.query

我有一个urlhttp://127.0.0.1:8000/medicine_alternatives/?id=Avinim%20Plus%20(100%20&%20500)

为了清楚起见,不使用编码的参数是id=Avinim Plus (100 & 500)

在服务器,我正在检索参数,如下所示:

 app.get('/medicine_alternatives', function (req, res) { console.log('id='+req.query.id); }); 

我得到id=Avinim Plus (100在控制台。它似乎是处理一切后&作为不同的参数。

如何获得整个弦Avinim Plus (100 & 500)

&是分隔查询string参数的分隔符。 查询stringparsing器将parsing为:

 { "id": "Avinim Plus (100", " 500)": undefined } 

因为&是一个特殊的字符,所以你需要用%26replace它:

http://127.0.0.1:8000/medicine_alternatives/?id=Avinim%20Plus%20(100%20%26%20500)