我尝试使用以下标准从数据库查询记录:维生素+ ZINC 100MG / 10MG PER 5ML糖浆
这是我的请求网址:
http://localhost:4200/api/search?key=VITAMINS%20+%20ZINC%20100MG/10MG%20PER%205ML%20SYRUP
这是我的快递路由器的样子:
router.get('/search', (req, res, next) => {
const query = req.query;
console.log(query.key);
.... omitted
});
这里的问题是我无法保留+
特殊字符,因此最终会打印此日志,这不是路由器内的原始条件。
VITAMINS ZINC 100MG/10MG PER 5ML SYRUP
答案 0 :(得分:0)
就URI而言,+
字符是reserved characters之一。
当保留集中的字符(“保留字符”)具有时 特定上下文中的特殊含义(“保留目的”)和URI scheme表示有必要将该字符用于其他方面 目的,那么角色必须是百分比编码。
在您的情况下,在客户端点击URL之前,查询字符串需要进行百分比编码:
encodeURIComponent(“VITAMIN + ZINC”)
然后在服务器端(即express)使用decodeURIComponent()
解码查询。