Koa2

Koa 本质上是调用一系列的中间件,来处理对应的请求,并决定是否传递到下一个中间件去处理。

1
npm install koa --save

所以,接口的本质,就是判断不同的请求链接,干不同的事情,返回相应的结果。那么我们得需要一个路由中间件来处理分发请求。
使用 koa-router  处理路由.

1
npm install koa-router --save
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
const Koa = require("koa");
const app = new Koa();
const Router = require("koa-router");
const router = new Router();

//地址跳转
router.get("/", (ctx) => {
ctx.body = "这是主页";
});
router.get("/user", (ctx) => {
ctx.body = "这是user页";
});
//这里koa不会去处理数据,需要使用中间件body-parse
router.get("/post", (ctx) => {
ctx.body = ctx.request.body;
});
router.get("async", async (ctx) => {
const sleep = async (ms) => {
return new Promise((resolve) => {
setTimeout(() => {
resolve(true);
}, ms);
});
};
await sleep(1000);
ctz.body = `这是异步网页`;
});

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

// app.use(ctx => {
// ctx.body = `您的网址为:${ctx.request.url}`
// })

app.listen(3000);

安装 body-parse .

1
npm install koa-bodyparser --save

业务分离

改造后目录结构

1
2
-koa2 - node_modules - controller;
user.js - index.js - router.js - package.json;
1
2
3
4
5
6
7
8
9
10
11
//index.js
const Koa = require("koa");
const app = new Koa();
const router = require("./router");
const bodyParser = require("koa-bodparser");

app.use(bodyParser);

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

app.listen(3000);