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, asyncapp.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" }}