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