Simple Node.js services make your development more flexible. Provide middleware and controller syntax, and route Writing method by decorator.
npm install nb2
import { Nb2 } from "nb2";
const app = new Nb2({ port: 8080 });
app.run();
Routing syntax utilizes decorators, need to configure in tsconfig.json:
{ "experimentalDecorators": true }
Your Controller code.
import { Controller, Context, Get, Post, sfn } from "nb2";
@Controller("test")
export class Test {
  // path -> /test?a=1&b=2
  @Get()
  [sfn()](ctx: Context) {
    ctx.json(ctx.query);
  }
  // path -> /test/post
  @Post("post")
  async [sfn()](ctx: Context) {
    const body = await ctx.body("json");
    ctx.json(body);
  }
  // path -> /test/rand/123
  @Get("rand/*")
  [sfn()](ctx: Context) {
    ctx.text("hello world");
  }
  // path -> /test/123
  @Get(":id")
  [sfn()](ctx: Context) {
    ctx.json(ctx.params);
  }
}
Install the Controller into the service.
import { controllers } from "nb2";
app.use(controllers("/api", Test));
app.use(controllers("/admin", Test2, Test3, ...));