- Use decorators
- Custom interceptor
- Simple to use
- Pleasant development experience
Using npm:
npm i fire-cat
Using yarn:
yarn add fire-cat
git clone https://github.com/firecatjs/fire-cat-started.git
cd fire-cat-started
yarn
controller.ts
import {ApiDescription, FireCatController, Get, Request, Context} from "fire-cat";
export class HomeController extends FireCatController {
@Get('/')
@Request()
@ApiDescription('index page')
index(ctx: Context) {
ctx.body = 'hello world'
}
@Get('/ping')
@Request()
@ApiDescription('ping page')
ping(ctx: Context) {
ctx.body = 'pang'
}
}
import {FireCatDecorator} from "fire-cat";
export const AuthLogin = function () {
return FireCatDecorator.registerImplement(async (ctx, next) => {
ctx.state.userInfo = {
id: 1,
name: 'fake',
some: 'bar'
}
await next()
})
}
class MyController extends FireCatController {
@Post('hello')
@AuthLogin()
hello(ctx: Context) {
console.log(ctx.state.userInfo)
ctx.body = "hello world"
}
}
router.ts
import {FireCatRouter} from "fire-cat";
import {HomeController} from "controller.ts";
const fireRouter = new FireCatRouter()
fireRouter.controller('/', new HomeController())
export default fireRouter
app.ts
import {FireCat} from "fire-cat";
import {fireCatRouter} from "router.ts";
const app = new FireCat();
app.koa.use(fireCatRouter.router.routes());
app.koa.listen('3010');
console.log(
`🐳️app is running at http://127.0.0.1:3010`,
);