mu-koan-router
v1.0.1
Published
Dynamic routing and controllers discovery for mu-kōän applications
Downloads
12
Maintainers
Readme
mu-kōän-router 公案-ルータ
Automatic routes discovery and declaration for mu-kōän applications.
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.
'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,
'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