# koa-server-module

> koa server module

Latest version **0.1.6** (published 2016-11-21) · MIT license · 0 weekly downloads

## Install

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

## Health

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

Positive: no vulnerabilities.

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

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.6 |
| Published | 2016-11-21 |
| First published | 2016-11-20 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 15 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 5 |
| Author | countsheep |
| Maintainers | countsheep |

## Links

- npm: https://www.npmjs.com/package/koa-server-module
- Repository: https://github.com/8881/koa-server-module
- Issues: https://github.com/8881/koa-server-module/issues
- npm.io page: https://npm.io/package/koa-server-module

## Dependencies (15)

- [koa](https://npm.io/package/koa.md) ^2.0.0
- [kcors](https://npm.io/package/kcors.md) ^1.2.1
- [babel-cli](https://npm.io/package/babel-cli.md) ^6.18.0
- [babel-core](https://npm.io/package/babel-core.md) ^6.18.2
- [koa-router](https://npm.io/package/koa-router.md) ^7.0.1
- [koa-convert](https://npm.io/package/koa-convert.md) ^1.2.0
- [babel-polyfill](https://npm.io/package/babel-polyfill.md) ^6.16.0
- [babel-preset-es2015](https://npm.io/package/babel-preset-es2015.md) ^6.18.0
- [babel-preset-stage-0](https://npm.io/package/babel-preset-stage-0.md) ^6.16.0
- [babel-plugin-syntax-async-functions](https://npm.io/package/babel-plugin-syntax-async-functions.md) ^6.13.0
- [babel-plugin-transform-function-bind](https://npm.io/package/babel-plugin-transform-function-bind.md) ^6.8.0
- [babel-plugin-transform-class-properties](https://npm.io/package/babel-plugin-transform-class-properties.md) ^6.11.5
- [babel-plugin-transform-decorators-legacy](https://npm.io/package/babel-plugin-transform-decorators-legacy.md) ^1.3.4
- [babel-plugin-transform-async-to-generator](https://npm.io/package/babel-plugin-transform-async-to-generator.md) ^6.8.0
- [babel-plugin-transform-object-rest-spread](https://npm.io/package/babel-plugin-transform-object-rest-spread.md) ^6.8.0

## Recent versions

- 0.1.6 (latest) — 2016-11-21
- 0.1.5 — 2016-11-20
- 0.1.4 — 2016-11-20
- 0.1.3 — 2016-11-20
- 0.1.2 — 2016-11-20
- 0.1.1 — 2016-11-20
- 0.1.0 — 2016-11-20

## README

# koa-server-module

快速构建一个 koa 接口服务器。

## Install

```
npm install --save koa-server-module
```

### Quick start
快速上手，使用简单语法糖快速构建一个服务。

```
// get method
server.get([address],[response]);

// post method
server.post([address],[response]);
```

example.js

```
import {server} from "koa-server-module";

server.get('/get', {
  code: 200,
  msg: 'get success',
  data: null
});

server.post('/post', {
  code: 200,
  msg: 'post success',
  data: null
});

server.listen(9000);
```

使用es6的写法需要使用 babel-register 来运行此js文件。
浏览器打开 http://localhost:9000/get, 得到对应的json数据

### 另一种写法
即 [koa-router](https://github.com/alexmingoia/koa-router/tree/master/) 的写法。

```
import {server, router} from "koa-server-module";

router.get('/get', async(ctx,next) => {
    ctx.body = JSON.stringify({
        code: 200,
        msg: 'get success',
        data: null
    })
});

router.post('/post', async(ctx,next) => {
    ctx.body = JSON.stringify({
        code: 200,
        msg: 'post success',
        data: null
    })
});

server.listen(9000);
```

### middleware
使用中间件，例如给每个接口设置header。

```
import {server, router} from "koa-server-module";

const setHeader = async(ctx, next) => {
  ctx.set(`Access-Control-Allow-Credentials`, true);
  await next();
};

router.get('/get', setHeader, async(ctx,next) => {
    ctx.body = JSON.stringify({
        code: 200,
        msg: 'get success',
        data: null
    })
});

server.listen(9000);
```

### Delay
延迟响应，模拟慢网速

```
import {server} from "koa-server-module";

server.delay(3000); // 延迟3秒

server.get('/get', {
  code: 200,
  msg: 'get success',
  data: null
});

server.listen(9000);
```

### pagination
分页，获取请求的数据并返回数据。

example

```
import {server, router} from "koa-server-module";

router.get(`/page`, async(ctx, next) => {
  const pageIndex = ctx.query.pageIndex ? parseInt(ctx.query.pageIndex) : 1;
  const pageSize = ctx.query.pageSize ? parseInt(ctx.query.pageSize) : 1;
  ctx.body = JSON.stringify(
    {
      "code": 200,
      "msg": "success",
      "data": {
        pageIndex: pageIndex,
        pageSize: pageSize,
        totalPage: Math.ceil(3 / pageSize),
        list: [
          {
            id: 1,
            name: 1
          },
          {
            id: 2,
            name: 2
          },
          {
            id: 3,
            name: 3
          }
        ].splice((pageIndex - 1) * pageSize, pageSize)
      }
    }
  );
});

server.listen(9000);
```

### es5 way
es5环境下如何使用

```
'use strict';

const server = require('../build/server').server;

server.get('/test',{
  code: 200,
    msg: 'success',
    data: null
});

server.listen(9001);
```

完

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