Koa 入门

Koa 初窥

运行 npm i koa2 命令安装。新建一个 app.js 写入我们的第一份 Koa 代码。

const koa = require('koa2')
const app = new koa()

app.use(async (ctx, next) => {
  ctx.response.status = 200
  ctx.response.body = 'hi, koa'
  await next()
})

app.listen(3000)

node app.js,成功之后运行在 3000端口


中间件

中间件是 Koa 一个重要的概念,它是一个执行的链条,整个链条组成了一个运行的周期,这样说有点抽象,我们看代码理解。

const koa = require('koa2')
const app = new koa()

// 访问权限
app.use(async (ctx, next) => {
  console.log('权限验证通过...')
  await next() // 执行下一个中间件
})

// 日志记录
app.use(async (ctx, next) => {
  console.log('日志记录完成...')
  await next() // 执行下一个中间件
})

// 响应处理
app.use(async (ctx, next) => {
  ctx.response.status = 200
  ctx.response.body = 'hi, koa'
  await next()
})

app.listen(3000)

每一个中间件负责特定的小模块,互相配合,组合成一条完整的业务通道。中间件的功能也为 Koa 项目的扩展提供了很大的便利性,因为一些特定成熟的功能可以抽象成一个个模块共享出来,比如 路由模块模版引擎 ... 让我们可以站在巨人的肩膀,直接在项目中导入使用这些成熟的模块。

async await 语法可以参考 - JavaScript 异步


上下文

中间件函数中另外一个参数 ctx,是一个环境上下文参数,解决了中间件之间的依赖问题,是中间件之间的全局变量。

app.use(async (ctx, next) => {
  ctx.a = 1
  await next() 
})

app.use(async (ctx, next) => {
  console.log(ctx.a) // 1
  await next()
})

两一个作用,ctx 包含了 HTTP 的请求和响应处理。

Koa 教程 Koa 入门 Koa HTTP Koa 开发框架 Koa 路由 Koa 静态文件 Koa bodyparser Koa 视图 Koa 数据库 Koa 记录日志
更多教程 HTML5 教程 CSS3 教程 JavaScript 教程 JQuery 教程 React.js 教程 Node.js 教程 Koa2 教程 Python 教程 Linux 教程