substats
substats copied to clipboard
Getting multiple query params
Hi there ✋
It's not sure that you know this way already, but I want to tell you. I know how to get multiple query params with ittry-router
. Inside of the handler, we can get Request
object. So, we can get multiple query params by getting url strings, passing into URLSearchParams
, and using getAll()
method. This is code:
import { Router } from 'itty-router'
const router = Router()
router.get('/', (req) => {
const url = new URL(req.url)
const search = new URLSearchParams(url.search)
const params = search.getAll('foo')
return new Response(JSON.stringify(params), {
headers: {
'Content-Type': 'application/json',
},
})
})
addEventListener('fetch', (event) => event.respondWith(router.handle(event.request)))
Run with Wrangler or Miniflare, and then access like this:
$ curl 'http://localhost:8787/?foo=hello&foo=morning&foo=night'
["hello","morning","night"]
You can get multi values.
Note:
You can also use Hono instead of ittry-router.
import { Hono } from 'hono'
const app = new Hono()
app.get('/', (c) => {
const url = new URL(c.req.url)
const search = new URLSearchParams(url.search)
const params = search.getAll('foo')
return c.json(params)
})
export default app
If it is annoying, feel free to close this issue.
Thanks! I just came across Hono today, and seeing its performance advantages over itty-router - I may switch over when I have time ;)
Cheers, and thanks for letting me know.
(I'll keep this open when I eventually refactor the project to use Hono or get multiple queries implemented.)