A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.npmjs.com/package/koa-dec-router below:

koa-dec-router - npm

koa-dec-router

Install

or

yarn add koa-dec-router

Demo

app.js

 

import Koa from 'koa'

import DecRouter from 'koa-dec-router'

 

const decRouter = DecRouter({

  controllersDir: `${__dirname}/controllers`,

  before: null, 

  after: null, 

})

 

const app = new Koa()

 

app.use(decRouter.router.routes())

app.use(decRouter.router.allowedMethods())

 

controllers/api.js

import { controller, get, post } from 'dec-router'

 

async function apiHandler(ctx, next) {

  console.log('handle all api and subclass\'s')

  await next()

}

 

@controller('/api', apiHandler)

export default class Api {

  async getApiCommon(ctx) {

    

    return 

  }

}

 

controllers/posts.js

 

import { controller, get, post } from 'dec-router'

import Api from './api'

 

async function postHandler(ctx, next) {

  console.log('handle post')

  await next()

}

 

@controller('/subpost')

export class Subpost {

  @get('s')

  async list(ctx) {

    ctx.body = 'get subpost'

  }

 

}

 

@controller('/post')

export default class Post extends Api {

 

  @get('s') 

  async list(ctx) {

    const commonData = await super.getApiCommon()

    ctx.body = 'get posts'

  }

 

  @get('/:id', {priority: -1}) 

  async get(ctx) {

    ctx.body = 'get' + ctx.params.id

  }

 

  @get('/special')

  async special(ctx) {

    ctx.body = 'special post'

  }

}

 

Console output

To output all routes generated by dec-router, you can run your app like

DEBUG=dec-router,your-app:* node ./your-app.js

For windows, using cross-env

cross-env DEBUG=dec-router,your-app:* node ./your-app.js

See more about DEBUG

API Reference DecRouter(options) @controller(path, opts, ...middlewares)

Controller decorator.

@route(method, path, opts, ...middlewares)

Controller method decorator, default would totally override superclass's method with same path (not same name), including method, opts, middlewares, etc.

@get(path, opts, ..middlewares)

alias of @route('get', path, opts, ...middlewares)

@head(path, opts, ..middlewares)

alias of @route('head', path, opts, ...middlewares)

@post(path, opts, ..middlewares)

alias of @route('post', path, opts, ...middlewares)

@put(path, opts, ..middlewares)

alias of @route('put', path, opts, ...middlewares)

@del(path, opts, ..middlewares)

alias of @route('delete', path, opts, ...middlewares)

@patch(path, opts, ..middlewares)

alias of @route('patch', path, opts, ...middlewares)

@all(path, opts, ..middlewares)

alias of @route('use', path, opts, ...middlewares)


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4