middleware.js
javascript
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
javascript
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
javascript
{
"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"
}
}