koa-routing-controllers
TypeScript icon, indicating that this package has built-in type declarations

0.1.2 • Public • Published

koa-routing-controllers

Create highly performant and well-structured class-based controllers for Koa 2 using TypeScript.

NOTE: This is a "work in progress" project and many features are currently absent. Pull requests are welcome! :)

Installation

  1. Install this package:

npm install koa-routing-controllers

  1. Install reflect-metadata package:

npm install reflect-metadata

and make sure to import it before using this package:

import "reflect-metadata"
  1. Make sure you have experimentalDecorators and emitDecoratorMetadata options enabled in tsconfig.json:
"emitDecoratorMetadata"true,
"experimentalDecorators"true,

Usage

import "reflect-metadata";
 
import { Controller, Get, Param, createKoaServer } from "koa-routing-controllers";
 
@Controller()
export class HelloWorldController {
  @Get("/")
  helloWorld() {
    return "Hello, world!";
  }
 
  @Get("/:name")
  greetByName(@Param("name") name: string) {
    return `Hello, ${name}!`;
  }
}
 
createKoaServer({
  controllers: [
    HelloWorldController
  ]
}).listen(8080, () => {
  console.log("Listening on http://localhost:8080");
});

Roadmap

  • Add needed decorators
  • Add more type coverage
  • Add support for injectable parameters
  • Add support for scoped middlewares
  • Add support for body/query validation
  • Add documentation

Package Sidebar

Install

npm i koa-routing-controllers

Weekly Downloads

6

Version

0.1.2

License

MIT

Unpacked Size

39 kB

Total Files

86

Last publish

Collaborators

  • justblender