middleware.js
- const Koa = require("koa");
- const app = new Koa();
- const middleware = function async(ctx, next) {
-     console.log(`this is a middleware!`);
-     console.log(ctx.request.path);
-     // next();
- };
- const middleware1 = function async(ctx, next) {
-     console.log(`this is a middleware1!`);
-     console.log(ctx.request.path);
-     next();
-     console.log(`this is a middleware1 ending!`);
- };
- const middleware2 = function async(ctx, next) {
-     console.log(`this is a middleware2!`);
-     console.log(ctx.request.path);
-     next();
-     console.log(`this is a middleware2 ending!`);
- };
- app.use(middleware1);
- app.use(middleware2);
- app.use(middleware);
- app.listen(3000);
index.js
- const Koa = require("koa");
- const Router = require("koa-router");
- const cors = require("@koa/cors");
- const koaBody = require("koa-body");
- const json = require("koa-json");
- const app = new Koa();
- const router = new Router();
- router.prefix("/api");
- router.get("/", (ctx) => {
-     console.log(ctx);
-     console.log(ctx.request);
-     ctx.body = "hello koa";
- });
- router.get("/api", (ctx) => {
-     // console.log(ctx);
-     // console.log(ctx.request);
-     const params = ctx.request.query;
-     console.log(params);
-     // ctx.body = "hello Api";
-     ctx.body = {
-         name: params.name,
-         age: params.age,
-     };
- });
- router.get("/async", async (ctx) => {
-     ctx.body = await new Promise((resolve) => {
-         setTimeout(() => {
-             resolve("hello async 2s later");
-         }, 2000);
-     });
- });
- router.post("/post", async (ctx) => {
-     let { body } = ctx.request;
-     console.log(body);
-     console.log(ctx.request);
-     ctx.body = {
-         ...body,
-     };
- });
- app.use(koaBody());
- app.use(cors());
- app.use(json({ pretty: false, param: "pretty" }));
- // request, method, respond
- // api url function router
- // ctx, async
- app.use(router.routes()).use(router.allowedMethods());
- app.listen(3000);
package.json
- {
-   "name": "resource",
-   "version": "1.0.0",
-   "description": "",
-   "main": "index.js",
-   "scripts": {
-     "build": "webpack"
-   },
-   "keywords": [],
-   "author": "",
-   "license": "ISC",
-   "dependencies": {
-     "@koa/cors": "^3.1.0",
-     "koa": "^2.13.0",
-     "koa-body": "^4.2.0",
-     "koa-router": "^9.4.0"
-   },
-   "devDependencies": {
-     "koa-json": "^2.0.2"
-   }
- }