0.1.9 • Published 8 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-routerthis 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