https://github.com/nfantone/mu-koan-router
Automatic routing and controllers discovery for mu-kōän applications
https://github.com/nfantone/mu-koan-router
controllers discovery koa router
Last synced: 7 months ago
JSON representation
Automatic routing and controllers discovery for mu-kōän applications
- Host: GitHub
- URL: https://github.com/nfantone/mu-koan-router
- Owner: nfantone
- License: mit
- Created: 2016-07-01T21:28:12.000Z (over 9 years ago)
- Default Branch: develop
- Last Pushed: 2020-05-30T08:11:32.000Z (over 5 years ago)
- Last Synced: 2025-03-02T16:16:24.279Z (8 months ago)
- Topics: controllers, discovery, koa, router
- Language: JavaScript
- Homepage:
- Size: 84 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# mu-kōän-router 公案-ルータ
[](https://greenkeeper.io/) [](https://travis-ci.org/nfantone/mu-koan-router) [](https://github.com/Flet/semistandard)> Automatic route discovery and declaration for [mu-kōän][1] applications.
```sh
npm i --save mu-koan-router
```## Usage
Write your _controllers_ (see below) and place them under a single root directory. Tell `mu-koan-router` where you store them and let the module do the setup for you.```javascript
'use strict';
/**
* Configures a Koa app and exports it.
*/
const Koa = require('koa');
const router = require('mu-koan-router');// Create Koa app instance
let app = new Koa();// Setup routes using controllers found
// on ./routes directory and configure them
// under a "/v1" namespace.
router.declareRoutes(app, {
root: path.join(__dirname, 'routes'),
prefix: '/v1'
});// Export the configured application
module.exports = app;
```### Controllers
A _controller_ is node module that exports a `function` that receives a `koa-router` instance and declares something on it. All controllers must be defined under a single root directory (but can be nested as needed).For example,
```javascript
'use strict';
/**
* Implementation of API /hello endpoint.
* @module routes/hello
*/
const moment = require('moment');/**
* Set up /hello endpoint.
* @param {Object} router A Koa router
*/
module.exports = function(router) {
/**
* GET /hello
*
* Returns a simple hello world
* text and a timestamp.
*/
router.get('/hello', (ctx) => {
ctx.status = 200;
ctx.body = {
success: true,
message: 'Hello from mu-koan!',
timestamp: moment().format('l')
};
});
};```
## License
MIT[1]: https://www.npmjs.com/mu-koan