Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 3 days 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 8 years ago)
- Default Branch: develop
- Last Pushed: 2020-05-30T08:11:32.000Z (over 4 years ago)
- Last Synced: 2025-01-07T21:37:56.923Z (28 days 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 公案-ルータ
[![Greenkeeper badge](https://badges.greenkeeper.io/nfantone/mu-koan-router.svg)](https://greenkeeper.io/) [![Build Status](https://travis-ci.org/nfantone/mu-koan-router.svg?branch=master)](https://travis-ci.org/nfantone/mu-koan-router) [![js-semistandard-style](https://img.shields.io/badge/code%20style-semistandard-brightgreen.svg?style=flat-square)](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