0.1.9 • Published 2 years ago

fastcar-koa v0.1.9

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

基于封装koa的web成型框架

快速安装

npm install fastcar-koa

基本原理

  • 采用fastcar-core框架,然后将koa包装成一个基础组件进行调用
  • 加载顺序为优先加载自定义中间件->加载自定义路由->启动http服务进行监听
  • 停止阶段 延迟一秒左右 将server进行关闭

如何使用

import { FastCarApplication } from "fastcar-core";
import { Application } from "fastcar-core/annotation";
import { EnableKoa } from "fastcar-koa/annotation";

@Application //注入基础框架
@EnableKoa //开启koa
class APP {
 app!: FastCarApplication;
}

export const app = new APP();

添加一个路由访问

import { Controller } from "fastcar-core/annotation";
import { GET } from "fastcar-koa/annotation";

@Controller
export default class HelloController {

 @GET("/")
 home() {
  return "hello world";
 }
}

如何引用koa中间件

//自定义中间件
//默认会出传入 app: FastCarApplication 可供选择
function Example(): koa.Middleware {
    return async (ctx: koa.Context, next: Function) => {
        console.log("example--- in");
        await next();
        console.log("example--- out");
    };
}

//在主入口内添加
import { FastCarApplication } from "fastcar-core";
import { Application } from "fastcar-core/annotation";
import { EnableKoa } from "fastcar-koa/annotation";

@Application //注入基础框架
@EnableKoa //开启koa
@KoaMiddleware(Example)
class APP {
 app!: FastCarApplication;
}

export const app = new APP();

默认整合的koa中间件(开启方式为@KoaMiddleware(XX))

  • ExceptionGlobalHandler 用于koa运行时的异常情况捕捉
  • KoaBody 用于文件上传 与 koa-body的用法一致
  • KoaBodyParser 用于请求数据的解析 推荐客户端使用application/json的方式
  • KoaCors 跨域设置(后期可能会用更好的插件替代)
  • KoaStatic 整合了koa-static,koa-range,koa-mount用于静态文件访问,可设置别名
  • Swagger 用于展示api文档使用(后期支持自动化配置说明)

注解说明

  • EnableKoa 作用于应用 开启Koa组件

  • AllMapping,ALL 作用于controller层 支持GET POST等请求方式访问

  • GetMapping GET

  • PostMapping POST

  • DeleteMapping DELETE

  • PatchMapping PATCH

  • PutMapping PUT

  • RequestMapping REQUEST 作用于头部,用于追加url

  • KoaMiddleware 作用于应用 用于加载中间件 越在应用上面 优先级越高

更多用法

参考项目git地址 fastcar-koa/test下的simple内

项目开源地址

0.1.8

2 years ago

0.1.9

2 years ago

0.1.7

2 years ago

0.1.6

2 years ago

0.1.2

2 years ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.5

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago