0.1.9 • Published 6 years ago

trie-router v0.1.9

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

NPM version Travis Coveralls github branch

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

0.1.9

6 years ago

0.1.8

6 years ago

0.0.17

6 years ago

0.0.16

6 years ago

0.0.15

6 years ago

0.0.14

6 years ago

0.0.13

6 years ago

0.0.12

6 years ago

0.0.11

6 years ago

0.0.10

6 years ago

0.0.9

6 years ago

0.0.8

6 years ago

0.0.7

6 years ago

0.0.6

6 years ago

0.0.5

6 years ago

0.0.3

6 years ago

0.0.2

6 years ago