@appolo/router
Version:
120 lines (88 loc) • 3.46 kB
Markdown
[](https://travis-ci.org/shmoop207/appolo-route) [](https://david-dm.org/shmoop207/appolo-route) [](https://badge.fury.io/js/appolo-route) [](https://www.npmjs.com/package/appolo-route)
[](https://snyk.io/test/github/shmoop207/appolo-route)
Fast and simple http routing using radix tree
```javascript
npm install appolo-route --save
```
```javascript
import {Router} from "appolo-route"
let router = new Router()
.get("/test/:param", ()=>"working");
output = router.find("GET" , "/test/test2");
console.log(output.params.param) // test2
console.log(output.handler()) // working
```
Options
- `useCache` - cache the find result by path, default : `true`
- `maxCacheSize` - The maximum size of the cache routes, default: `1000`
- `decodeUrlParams` - true to decodeURIComponent params value, default: `false`
```javascript
let router = new Router()
.get("/test/test2", ()=>"working");
.post("/test/test2", ()=>"working post");
```
```javascript
let router = new Router()
.get("/test/:userId/:userName", ()=>"working");
```
```javascript
let router = new Router()
.get("/*", ()=>"working");
```
same syntax as [path-to-regexp](https://github.com/pillarjs/path-to-regexp)
```javascript
let router = new Router()
.get("/test/:file(^\\d+).png", ()=>"working");
```
find route by path return object with `params` and `handler`
if no `params` found return empty object
```javascript
import {Router} from "appolo-route"
let router = new Router()
.get("/users/:userId", (userId)=>console.log(userId));
result = router.find("GET" , "/users/123");
result.handler(result.params.userId) // 123
```
register new Route handler using Http.Get Method
register new Route handler using Http.Post Method
register new Route handler using Http.Put Method
register new Route handler using Http.Put Method
register new Route handler using Http.Patch Method
register new Route handler using Http.Delete Method
register new Route handler using Http.Delete Method
register new Route handler.
multi methods supported
```javascript
let router = new Router()
.add(["POST","GET"],"/test/:param", ()=>"working");
```
remove Route by path.
multi methods supported
```javascript
let router = new Router()
.add(["POST","GET"],"/test/:param", ()=>"working")
.remove("Get","/test/:param");
```
reset the router remove all routes
MIT