# quick-koa-server

> 快速构建 koa 服务

Latest version **1.1.6** (published 2022-12-11) · ISC license · 0 weekly downloads

## Install

```sh
npm install quick-koa-server
pnpm add quick-koa-server
yarn add quick-koa-server
bun add quick-koa-server
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.6 |
| Published | 2022-12-11 |
| First published | 2022-06-25 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 6 |
| Unpacked size | 40.1 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | martha |
| Maintainers | ahappyfly |

## Links

- npm: https://www.npmjs.com/package/quick-koa-server
- Repository: https://github.com/Martha1001/QServer
- Homepage: https://github.com/Martha1001/QServer#readme
- Issues: https://github.com/Martha1001/QServer/issues
- npm.io page: https://npm.io/package/quick-koa-server

## Dependencies (6)

- [got](https://npm.io/package/got.md) ^11.8.5
- [koa](https://npm.io/package/koa.md) ^2.13.4
- [koa-ejs](https://npm.io/package/koa-ejs.md) ^4.3.0
- [koa-body](https://npm.io/package/koa-body.md) ^5.0.0
- [koa-router](https://npm.io/package/koa-router.md) ^10.1.1
- [koa-static](https://npm.io/package/koa-static.md) ^5.0.0

## Recent versions

- 1.1.6 (latest) — 2022-12-11
- 1.1.5 — 2022-12-11
- 1.1.4 — 2022-12-08
- 1.1.3 — 2022-12-07
- 1.1.2 — 2022-12-07
- 1.1.1 — 2022-12-07
- 1.1.0 — 2022-08-31
- 1.0.9 — 2022-08-28
- 1.0.8 — 2022-08-26
- 1.0.7 — 2022-08-25
- 1.0.6 — 2022-06-26
- 1.0.5 — 2022-06-26
- 1.0.4 — 2022-06-26
- 1.0.3 — 2022-06-25
- 1.0.2 — 2022-06-25
- … 2 more at https://npm.io/package/quick-koa-server/versions

## README

# quick-koa-server

快速构建 koa 服务

## 功能概览

- 对 quick-koa-server 构建的服务配置跨域（拦截 OPTIONS 请求定向放行）
  - 支持同时配置多个跨域
  - 支持对常见跨域内容项进行单独配置
- 内置前端渲染 historyApiFallback
- 支持对前端根页面（/index）注入环境变量（基于 koa-ejs）
- 静态资源访问服务
- 支持自由扩展中间件
- 配置生成 node 本地服务器
  - 支持同时配置多个服务目录、路由
  - 自动生成路由，支持扫描深层目录
  - 自动过滤特殊目录、文件，仅保留有效 router 导出
- 配置生成网关服务
  - 支持根据环境变量转发指定目标地址
  - 支持对请求头进行配置化放行，默认拦截所有请求头信息
  - 支持自定义 timeout，默认 6e4
  - 支持转发上传类接口
  - 支持转发下载类接口
- 支持配置健康检查请求


## 配置介绍

- `koaStaticOpt` koa-static 配置
- `koaEjsOpt` koa-ejs 配置
- `koaBodyOpt` koa-body 配置
- `CORSOpts` 跨域配置
- `getwayOpt` 网关配置，支持 REST 接口
- `apiOpts` node 服务配置
- `passHeaders` 允许透传的请求头，除常用 headers 外默认拦截所有请求头
- `processEnvKey` 在 process.env 中获取环境变量的 key，默认 'DEPLOY_ENV'
- `timeout` 请求超时时间（单位毫秒），默认 6e4
- `healthPath` 健康检查请求地址（一般用于校验 node 服务是否可用），默认 '/health'


## 使用示例

```typescript
import QServer from 'quick-koa-server';

const app = QServer({
  koaStaticOpt: { root: '/dist' },
  koaEjsOpt: { root: '/dist', layout: 'index', viewExt: 'html', cache: false, debug: false },
  CORSOpts: [{ origin: 'xxx.com', headers: ['cookie'] }],
  getwayOpt: {
    '/api/xxx': {
      target: 'xxx.com',
      pathRewrite: { '^/api/xxx': '' },
    },
  },
  apiOpts: [{ path: '/api/qserver/xxx', dir: '/xxx' }],
  passHeaders: ['cookie'],
});

app.listen(8080, () => {
  console.log('Success: Ready at http://localhost:8080');
});
```


## 自由扩展本地路由示例

```typescript
import * as path from 'path';
import * as Router from 'koa-router';
import { getApiRouter } from 'quick-koa-server/lib/routes/api';

const router = new Router();
getApiRouter(router, {
  path: '/api/qserver/factory',
  dir: path.resolve(__dirname, './factory/api'),
});

app.use(router.routes());
```

---
_Source: https://npm.io/package/quick-koa-server · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
