I noticed that the type of query parameters in req.query is
string | string[] | QueryString.ParsedQS | QueryString.ParsedQS[]
but so far, whenever i used req.query i always got strings.
My questions are
- What is the QueryString.ParsedQS type?
- When will the parameter be an array?
- When will the parameter be a QueryString.ParsedQS
CodePudding user response:
The type string | string[] | QueryString.ParsedQS | QueryString.ParsedQS[] is the type returned by qs.parse() method, take a look here at the declaration file: https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/qs/index.d.ts#L57.
Take a look at the qs documentation for possible return values of qs.parse():
https://github.com/ljharb/qs
For req.query to be parsed from string to object you need to call express app.set('query parser', 'extended'), extended is the default value but you may have changed it in your code:
https://expressjs.com/en/api.html#app.set
