如何告诉 Express 不要解析请求的查询字符串?

How to tell Express NOT to parse the query string of the request?

我知道 Express 检查查询字符串(例如?a=1&b=2)并在默认情况下解析它。 req.query 是包含 key/value 对的对象。有没有一种方法可以禁用此行为并完全忽略 qs?
我需要这个,因为我在客户端解析查询字符串,并且由于我收到了大量请求并且 qs 很长,所以我不需要每次解析查询字符串时都想浪费服务器资源(这意味着 Express 需要解码字符串中的 URI 组件,拆分字符串,为每个键值对做一个 for 循环,为每一对做另一个拆分,创建一个新的对象等非常昂贵)。这可能吗?

您可以配置查询解析器(查看 doc):

app.disable('query parser')

放在快速初始化之后,路由器之前。

您还可以向查询解析器传递一个空函数,以防您将来需要进行某种微调:

app.set('query parser', function(qs, options) { 
 // qs is a query string, process it here
});