A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/Cweili/koa-router-find-my-way below:

Cweili/koa-router-find-my-way: Router middleware for koa. Based on find-my-way, a crazy fast http radix based router.

Router middleware for koa. Based on find-my-way, a crazy fast http radix based router.

npm install koa-router-find-my-way --save

Note: koa-router-find-my-way@5 is based on find-my-way@5.

Old versions:

const koaRouter = require('koa-router-find-my-way');

const app = new Koa();
const router = koaRouter();

router.get('/test/:p', async (ctx, next) => {
  const { p } = ctx.params;
  ctx.body = {
    p,
  };
  await next();
});
app.use(router.routes());

app.listen(80);

All options are passed directly to find-my-way.

router.on(method, path, ...middlewares[, store])

Register a new route.

router
  .on('GET', '/examples', async (ctx, next) => {
    // a koa middleware
    await next();
  }, async (ctx, next) => {
    // another koa middleware
    ctx.body = 'Hello World!';
  })
  .on('DELETE', '/examples', (ctx, next) => {
    // ...
  })
  .on(['POST', 'PUT'], '/examples', (ctx, next) => {
    // ...
  });

Last argument, store is used to pass an object that you can access later inside the handler function. If needed, store can be updated.

router
  .on('GET', '/examples', async (ctx, next) => {
    assert.equal(ctx.store, { message: 'hello world' });
  }, { message: 'hello world' });
router.get|put|post|delete|head|patch|options|all(path, ...middlewares[, store])

If you want an even nicer api, you can also use the shorthand methods to declare your routes.

For each HTTP supported method, there's the shorthand method.

If you need a route that supports all methods you can use the all api.

router
  .get('/', (ctx, next) => {
    ctx.body = 'Hello World!';
  })
  .post('/users', (ctx, next) => {
    // ...
  })
  .put('/users/:id', (ctx, next) => {
    // ...
  })
  .delete('/users/:id', (ctx, next) => {
    // ...
  })
  .all('/users/:id', (ctx, next) => {
    // ...
  });

Returns router middleware which dispatches a route matching the request.

Deregister a route.

router.off('GET', '/example');

Empty router.

router.find(method, path)

Return (if present) the route registered in method:path.

The path must be sanitized, all the parameters and wildcards are decoded automatically.

router.find('GET', '/example')
// => { handler: Function, params: Object, store: Object}
// => null

Prints the representation of the internal radix tree, useful for debugging.

router
  .get('/test', () => {})
  .get('/test/hello', () => {})
  .get('/hello/world', () => {});

console.log(router.prettyPrint());
// └── /
//   ├── test (GET)
//   │   └── /hello (GET)
//   └── hello/world (GET)

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4