mu-koan-router
Dynamic routing and controllers discovery for mu-kōän applications
Last updated 4 years ago by nfantone .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install mu-koan-router 
SYNC missed versions from official npm registry.

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

Current Tags

  • 1.0.1                                ...           latest (4 years ago)

2 Versions

  • 1.0.1                                ...           4 years ago
  • 1.0.0                                ...           4 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 0
Last Day 0
Last Week 0
Last Month 0
Dependencies (3)
Dev Dependencies (17)
Dependents (0)
None

Copyright 2014 - 2017 © taobao.org |