Koa 本质上是调用一系列的中间件,来处理对应的请求,并决定是否传递到下一个中间件去处理。
所以,接口的本质,就是判断不同的请求链接,干不同的事情,返回相应的结果。那么我们得需要一个路由中间件来处理分发请求。
使用 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页"; });
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.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
| 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);
|