1.0.1 • Published 8 years ago

mu-koan-router v1.0.1

Weekly downloads
1
License
MIT
Repository
github
Last release
8 years ago

mu-kōän-router 公案-ルータ

Build Status

Automatic routes discovery and declaration for mu-kōän applications.

js-semistandard-style

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