Koa2

作者: greenteaObject | 来源:发表于2018-05-28 03:23 被阅读0次

安装

npm i koa -S

开始

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

app.use(async(ctx) => {
  ctx.body = 'hello koa'
})

app.listen(3000)

什么是ctx

ctx就是封装了request和response的上下文

什么是next

下一个中间件

什么是app

启动应用

中间件

中间件是一种洋葱圈的模型,当你从中间件1next到了中间件2,最终你还将回到中间件1

image.png
const Koa = require('koa')
const app = new Koa()

app.use(async(ctx, next) => {
  ctx.body = '1'
  next()
  ctx.body += '2'
})
app.use(async (ctx, next) => {
  ctx.body += '3'
  next()
  ctx.body += '4'
})
app.use(async (ctx, next) => {
  ctx.body += '5'
  next()
  ctx.body += '6'
})

app.listen(3000)

结果为135642,next的作用就是执行下一个中间件

async await

解决callback hell

一个Promise的例子
const ajax = (word) => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve(word)
    }, 1000);
  })
}
ajax('you')
  .then(res => {
    console.log(res)
    return ajax('me')
  })
  .then(res => {
    console.log(res)
  })
async + await的例子

async + await一定要一起使用


async function start() {
  const word1 = await ajax('you')
  console.log(word1)
  const word2 = await ajax('me')
  console.log(word2)
  const word3 = await ajax('him')
  console.log(word3)
}
start()

相关文章

网友评论

      本文标题:Koa2

      本文链接:https://www.haomeiwen.com/subject/kccwjftx.html