0.1.9 • Published 6 years ago
trie-router v0.1.9
TRIE ROUTER
A trie-based http router
similar work:
pillarjs/routington
Feature
- Tried-base, logarithmic time complexity
- Named URL parameters
- Strong typed api(TypeScript 1.6+ Required)
Usage
npm install trie-router
this example briefly show the behavior of trie-router
const TrieRouter = require('trie-router').TrieRouter
const router = new TrieRouter()
router
.post('user/:id(\\d+)/login/:mode',1,2)
.all(3)
.get('user',4)
.post('user',5)
.post('user/:id',7)
.post('user',6)
//numbers here represent different middlewares
const { handlers, params } = router.fit('POST','user/123/login/email')
//handlers = [3,5,6,1,2]
//params = {id:"123",mode:"email"}
in typescript:
import { TrieRouter } from 'trie-router'
interface IKoaMiddleware{(ctx,next):any}
const router = new TrieRouter<IKoaMiddleware>()
router
.post('user/:id(\\d+)/login/:mode',(ctx,next)=>{
ctx.body = "hello"
next()
})
TODO
benchmarks
trie visualization