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

Cor*_*ped 6 javascript node.js query-string express

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

jav*_*ezg 6

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

app.disable('query parser')
Run Code Online (Sandbox Code Playgroud)

将它放在 express 初始化之后和路由器之前。

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

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