Skip to content

About

koa route middleware

Resources

Code of conduct

Contributing

Security policy

Stars

37 stars

Watchers

4 watching

Forks

Latest commit

 

History

124 Commits

Folders and files

Repository files navigation

Koa Path Match

NPM version Node.js CI Test coverage License Downloads

A simple routing wrapper around path-match. Similar to koa-route, except it optionally handles methods better. All of these routers use path-to-regexp underneath, which is what Express uses as well.

const route = require('koa-path-match')({/* options passed to path-to-regexp */})

app.use(route('/:id', (ctx, next) => {
  const id = ctx.params.id

  // do stuff
  switch (ctx.request.method) {

  }
}))

Or you can create middleware per method:

app.use(route('/:id')
  .get(async ctx => {
    ctx.body = await Things.getById(ctx.params.id)
  })
  .delete(async ctx => {
    await Things.delete(ctx.params.id)
    ctx.status = 204
  })
)

Maintainer

API

route(path, fns...)

paths are just like Express routes. fns is either a single middleware or nested arrays of middleware, just like Express.

const router = route(path)

When you don't set fns in the route() function, a router instance is returned.

router[method](fns...)

Define a middleware just for a specific method.

app.use(route('/:id').get(async ctx => {
  ctx.body = await Things.getById(ctx.params.id)
}))
  • next is not passed as a parameter. I consider this an anti-pattern in Koa - one route/method, one function.

this.params

Any keys defined in the path will be set to ctx.params, overwriting any already existing keys defined.

About

koa route middleware

Resources

Code of conduct

Contributing

Security policy

Stars

37 stars

Watchers

4 watching

Forks

Releases

Packages

Used by

Contributors

Languages