# caven-koa-cli

> ------ ##一.安装与运行 > * caven-koa-cli . 或 caven-koa-cli test > * npm install > * npm start

Latest version **1.1.8** (published 2019-06-05) · ISC license · 0 weekly downloads

## Install

```sh
npm install caven-koa-cli
pnpm add caven-koa-cli
yarn add caven-koa-cli
bun add caven-koa-cli
```

Provides the command `caven-koa-cli`.

## 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.8 |
| Published | 2019-06-05 |
| First published | 2019-06-04 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 11 |
| Unpacked size | 22.2 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Maintainers | cavendichun |

## Links

- npm: https://www.npmjs.com/package/caven-koa-cli
- Repository: https://github.com/Cavendichun/common_KoaServiceCli
- Homepage: https://github.com/Cavendichun/common_KoaServiceCli#readme
- Issues: https://github.com/Cavendichun/common_KoaServiceCli/issues
- npm.io page: https://npm.io/package/caven-koa-cli

## Dependencies (11)

- [koa](https://npm.io/package/koa.md) ^2.7.0
- [md5](https://npm.io/package/md5.md) ^2.2.1
- [mysql](https://npm.io/package/mysql.md) ^2.16.0
- [enquirer](https://npm.io/package/enquirer.md) ^2.3.0
- [koa-router](https://npm.io/package/koa-router.md) ^7.4.0
- [koa-compose](https://npm.io/package/koa-compose.md) ^4.1.0
- [koa-session](https://npm.io/package/koa-session.md) ^5.10.1
- [koa-bodyparser](https://npm.io/package/koa-bodyparser.md) ^4.2.1
- [koa-timeout-v2](https://npm.io/package/koa-timeout-v2.md) ^1.0.0
- [recursive-copy](https://npm.io/package/recursive-copy.md) ^2.0.10
- [@legodude/enquirer](https://npm.io/package/@legodude/enquirer.md) ^2.3.0

## Recent versions

- 1.1.8 (latest) — 2019-06-05
- 1.1.7 — 2019-06-04
- 1.1.6 — 2019-06-04
- 1.1.5 — 2019-06-04
- 1.1.4 — 2019-06-04
- 1.1.3 — 2019-06-04
- 1.1.2 — 2019-06-04
- 1.1.1 — 2019-06-04
- 1.1.0 — 2019-06-04
- 1.0.3 — 2019-06-04
- 1.0.2 — 2019-06-04
- 1.0.1 — 2019-06-04
- 1.0.0 — 2019-06-04

## README

#Node.js Koa Service Cli

------
##一.安装与运行
> * caven-koa-cli . 或 caven-koa-cli test
> * npm install
> * npm start

##二.编译
> * npm run dist
会在dist文件夹下生成转译好的文件，结构相同，复制并进入此文件夹并执行 npm install 然后执行 npm start 即可

##三.代码结构
> * 1.config.json
项目启动的相关配置

    {
        "SERVER_MODE": "DEV",  //当前运行模式，dist后自动变为ONLINE
        "WRITE_LOG": false,  //是否记录异常日志， dist后自动变为true
        "APP_CONFIG": {
            "LISTEN_PORT": 3000  //监听端口号，默认3000
        },
        "MYSQL_CONFIG": {  //mysql相关配置
            "HOST": "127.0.0.1",
            "PORT": 3306,
            "USER": "aaa",
            "PASSWORD": "aaaaaaa",
            "DATABASE": "aaaaaaa"
        }
    }
        

> * 2.build.config.js 

项目打包的相关设置

> * 3.App.js

项目入口文件，可以在此文件做启动前的准备工作，实例化忘之前可以传入相关的props

> * 4.src

文件夹分为routes（路由层）、service（服务层）、dao（数据层）、 middles（中间件）和 utils（公共方法）

单独文件分为：
>errCodes.js 所有期望人为抛出的异常码，在这里定义

>index.js 定义service的class，一般不需要变动

>middle.register.js 将中间件文件夹里的中间件进行排列组合

>routeDistribute.js 实现Request和Combine路由的装饰器、不需要变动


##四.新增路由（无需再其他文件中引用，已经动态引用）

>在routes文件夹，新建或修改路由文件，使用Combine装饰器组合路由，接受的参数是 prefix，即指定一级路由，如 prefix: '/home', 就会在该文件所有路由url前添加 /home

>新建路由方法，使用Request装饰器，接受的参数是 url 和 method， 路由方法采用async函数形式，例如

    @Request({ url: '/', method: 'GET' })
    async homePage(ctx, next) {
        ctx.response.no_wrapper = true;
        ctx.response.body = '<h1>INDEX</h1>';
        await next();
    }
    
##五.新增service

>在service文件夹中，新建或修改service文件，并在index中引用并实例化，然后暴露，方法均采用async/await

##五.新增dao

>在dao文件夹中，新建或修改dao文件，并在index中引用并实例化，实例化汇集收一个query的props，可在dao文件中通过this.props.Query来调用，用途是执行sql语句，dao方法均采用await/async

##六.新增中间件

>再middlewares文件夹中，根据需要新建中间件（纯async函数），并在需要的地方引用

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