Home > Enterprise >  When does the Express req.query variable get different types
When does the Express req.query variable get different types

Time:03-15

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

  1. What is the QueryString.ParsedQS type?
  2. When will the parameter be an array?
  3. 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

  • Related