Trie-routing for Koa
405 Method Not Allowedsupport
501 Not Implementedsupport
Routes are generally orthogonal, so the order of definition generally doesn't matter. See routington for more details.
var app = require'koa'appuserequire'koa-trie-router'appapproute'/'getthisbody = 'homepage'apppost'/images'var image = yield* thisrequestbuffer'25mb'
Checks if the server implements a particular method and throws a
501 error otherwise.
This is not middleware, so you would have to use it in your own middleware.
appusemyCustomErrorHandlerappusethisrequestassertImplementsMethod // throws otherwiseyield next
Like Express, all routes belong to a single middleware.
app.router is not implicitly mounted.
If you do not do
routing will never work.
paths can be a nested stack of string paths:
You can then chain
Similar to above, but you define
paths as the first argument:
this.params will be defined with any matched parameters.
appget'/user/:name'var name = thisparamsnamevar user = yield Usergetnameyield next
The middleware throws an error with
code MALFORMEDURL when it encounters
a malformed path. An application can try/catch this upstream, identify the error
by its code, and handle it however the developer chooses in the context of the
application- for example, re-throw as a 404.
For path definitions, see routington.
trie-router, routes are orthogonal and strict. Unlike regexp routing, there's no wildcard routing and you can't
next to the next matching route.