Hono: Routing

Routing is the process of determining what should happen when a URL is called, or also which parts of the application should handle a specific incoming request.

In the Hello World example we used this code

app.get('/', (c) => { /* */ })

This creates a route that maps accessing the root domain URL / using the HTTP GET method to the response we want to provide.

We’ve also seen how to respond to multiple HTTP methods using app.post() etc.

Named parameters

What if we want to listen for custom requests, maybe we want to create a service that accepts a string, and returns that uppercase, and we don’t want the parameter to be sent as a query string, but part of the URL.

We use named parameters:

app.get('/:test', c => {
  console.log(c.req.param('test'))
}

Example:

app.get('/uppercase/:val', (c) => {
  return c.text(c.req.params.val.toUpperCase())
})

If we send a request to /uppercase/test, we’ll get TEST in the body of the response.

You can use multiple named parameters in the same URL, and in this case req.param() will return an object containing their named values.

Lessons in this unit:

0: Introduction
1: Your first Hono app
2: The Request object
3: Send a response to the client
4: Manage cookies
5: Work with HTTP headers
6: Handling redirects
7: ▶︎ Routing
8: JSX templates
9: Middleware
10: Hono on Node.js
Want to learn more? Check out our courses