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, ...));