объект Koa Context инкапсулирует объект запроса, ответа и состояния, а также многое другое. Этот объект состояния является рекомендуемым пространством имен, в котором вы можете передавать данные между промежуточным программным обеспечением.
Модификация предоставленного примера дает:
const http = require('http')
const Koa = require('koa')
const Router = require('koa-router')
const app = new Koa()
const router = new Router({ prefix: '/test' })
router.all('/', async (ctx, next) => {
// decode token
const x = 'foo'
// assign decoded token to ctx.state
ctx.state.token = x
await next()
})
router.get('/', async ctx=> {
// access ctx.state
console.log(ctx.state.token)
})
app.use(router.routes())
http.createServer(app.callback()).listen(3000)
Перейдите к http://localhost: 3000 / test и увидеть расшифрованный токен, зарегистрированный на консоли.