Search code examples
javascriptrestexpressaxiosexpress-validator

Parsing Axios URL Param to String Array in ExpressJS


Sending a GET Request with axios:

await this.client.get('/endpoint', { params: { query: ['max', 'kevin'] } })

Results in a URL looking like this

Request GET /endpoint?query[]=max&query[]=kevin

How can I parse this to a string array?

Bonus points if someone knows how to check it in express-validator for format!


Solution

  • You can turn the array to string with to toString:

    await this.client.get("/endpoint", {
      params: { query: ["max", "kevin"].toString() },
    });
    

    This will change the URL to:

    /endpoint?query=max,kevin
    

    Then in the express-validator you can validate the array items with wildcard:

    req.check('query.*').isLength({ max: 30 })