koa-routr
v5.1.0
Published
A simple easy to use router for Koa. If you are familiar to express' router then this should be second nature to use.
Downloads
8
Readme
Koa-Routr
A simple easy to use router for Koa. If you are familiar to express' router then this should be second nature to use.
Install
npm i koa-routr
Usage
It's as simple as bellow:
const koa = require('koa')
const koaRoutr = require('koa-routr')
const app = koa()
const router = koaRoutr()
app.use(router)
app.listen(8000)
router.get('/abc', function * () {
this.body = 'GOT!!!'
})
router.put('/abc', function * () {
this.body = 'PUT\'ED!!!'
})
router.post('/abc', function * () {
this.body = 'POSTED!!!'
})
router.del('/abc', function * () {
this.body = 'DELETED!!!'
})
Version 5
As of version 5 params are no longer passed into the route handle they are
accessible on the context
and context.request
:
router
.param('abc')
.get('/letters/:abc', function * () {
// abc is accessible as:
// this.params.abc
// or this.request.params.abc
})
And there is middleware (which you can use
to structure further routers)
const app = koa()
const router = koaRoutr()
app.use(router)
app.listen(8000)
router.use(function * (next) {
// get users details...
this.context = { user: 'sam' }
yield next
})
const nestedRouter = koaRoutr()
nestedRouter.get('/123', function * () {
this.body = '123!!!'
})
router.use('/abc', nestedRouter)
Now it is possible to create a new router at a mounted point, which reduces the above example to the following:
const app = koa()
const router = koaRoutr()
app.use(router)
app.listen(8000)
router.use(function * (next) {
// get users details...
this.context = { user: 'sam' }
yield next
})
router
.router('/abc')
.get('/123', function * () {
this.body = '123!!!'
})
Licence
MIT