59 lines
861 B
Markdown
59 lines
861 B
Markdown
# BearMetal Router
|
|
|
|
A simple router for Deno.
|
|
|
|
[](https://www.gnu.org/licenses/gpl-3.0)
|
|
|
|
## Usage
|
|
|
|
### Basics
|
|
```ts
|
|
import Router from '@bearmetal/router';
|
|
|
|
const router = new Router();
|
|
|
|
router
|
|
.route('/users')
|
|
.get((ctx) => {
|
|
return new Response('GET /users');
|
|
})
|
|
.post((ctx) => {
|
|
return new Response('POST /users');
|
|
});
|
|
|
|
Deno.serve(router.handle)
|
|
```
|
|
|
|
### Middleware
|
|
```ts
|
|
...
|
|
|
|
router.use('/users', async (ctx, next) => {
|
|
console.log('Executing middleware');
|
|
return await next();
|
|
});
|
|
|
|
...
|
|
```
|
|
|
|
### Nested Routers
|
|
```ts
|
|
...
|
|
|
|
const nestedRouter = new Router();
|
|
|
|
nestedRouter
|
|
.route('/users')
|
|
.get((ctx) => {
|
|
return new Response('GET /users');
|
|
})
|
|
.post((ctx) => {
|
|
return new Response('POST /users');
|
|
});
|
|
|
|
router.use('/users', nestedRouter);
|
|
|
|
...
|
|
```
|
|
|