Simpe-Koa介绍

2022-06-14  本文已影响0人  野生DBNull

Simple-Koa开发初衷

我司走了微服务的路子,需要搭建一个BFF层来作为前端的数据处理层使用,原先的选项为Egg.js,但是讨论后发现太重了,而且书写习惯是纯前端的写法,不太适合我们公司的现状。讨论后我们决定使用Koa作为基础,搭建一个简单,轻量的BFF框架,然后我和我司的另外一个架构一起开发了athene-api作为我司的BFF层使用。

后来觉得这种写法还行,效果也还行,性能也够用,就将核心部分剥离出来成为了一个新的库simple-koa,并将其当做一个后端API框架来进行开发,而不是单纯作为一个BFF层架构在开发。

simple-koa一切以简单好上手为原则进行开发,所有API尽量的简单,并在简单的基础上有一定的拓展性。

Simple-Koa的功能

使用场景

我个人现在一直使用这个框架来进行我司工具的开发,比如迁移工具,数据桥接工具,BFF框架,MockData。
框架现在应该属于上手就能用的程度了,但是对分布式的支持还不够,但是做为一个单体的后端框架是完全没有任何压力的,基于Koa搭建,完全可以使用Koa的全部生态。

项目地址

Npm地址
Github地址

欢迎各位来Gihub上给我提意见(本人是一枚后端,前端写的菜,轻喷)~~~

快速上手

yarn init  # 初始化项目
yarn add simple-koa # 添加框架引用
yarn add nodemon typescript ts-node --dev # 添加运行调试所需

新建一个文件夹 src,在src文件夹中新建项目入口App.ts

注意,启动文件必须放在 src 文件夹下,否则会程序出现起不来的问题

// App.ts
import 'reflect-metadata'; // 这一句必须要加
import Program from 'simple-koa';

const program = new Program(__dirname);
program.Start();

添加 tsconfig.json (案例仅供参考,可以自己任意配置)

{
    "$schema": "https://json.schemastore.org/tsconfig",
    "display": "Node 14",
    "compilerOptions": {
        "lib": ["es2020"],
        "module": "commonjs",
        "target": "es2020",
        "baseUrl": ".",
        "outDir": "dist",
        "strict": true,
        "esModuleInterop": true,
        "skipLibCheck": true,
        "forceConsistentCasingInFileNames": true,
        "suppressImplicitAnyIndexErrors": true,

        "moduleResolution": "node",
        "sourceMap": true,
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "declaration": true
    },
    "include": ["src/**/*", "App.ts"],
    "exclude": ["node_modules", "**/*.spec.ts", "dist/**/*"]
}

package.json 添加启动命令

  "scripts": {
    "start": "nodemon --inspect --watch \"./src/**/*.ts\" -e ts --exec \"node\" -r ts-node/register \"./src/App.ts\""
  }

启动项目

yarn start

访问界面
http:127.0.0.1:30000 主界面
http:127.0.0.1:30000/swagger swaggerApi

上一篇下一篇

猜你喜欢

热点阅读