Koa2学习之旅----koa基础

npm i koa

服务器启动文件

const Koa = require('koa');

// 热重载:  supervisor
npm i -g supervisor
// npm i supervisor

supervisor app.js

客户端从发请求到看到内容

服务器:接收到请求(request)-> 处理请求,生成数据 -> 发送数据(response)

Koa: request -> middleware -> response

koa处理了request和response,我们需要做的是注册(编写)middleware
const Koa = require('koa')
const app = new Koa()
app.use((ctx, next) => {
  ctx.body = '<strong />koa'
  next()
})
app.listen(8080, () => {
  console.log('app is runing 8080')
})

  Application

  当前应用程序对象,即 new Koa() 得到的实例对象,保存了应用全局状态以及其他对象,后面的ContextReqeustResponse对象都是该对象下的子对象

  - .listen()

  - .use(callback)

中间件

  - .use(callback)

  - callback(context, next)

  - context 对象

  每一次请求都会包装一个context对象

  - next

  每一个中间件都是一个迭代器

  - 异步中间件

  .use(async callback)

 

错误处理

  - app.on('error', err => {})

 

context 对象

  每一次请求都会包装一个 context 对象

  该对象对 node request response 对象进行了封装(加强了node中的requestresponse

  同时提供了其他一些有用的 api

  koa 会把 context 传入到中间件函数的第一个参数中

  可以对context进行扩展,并在中间件中使用

 

 

context 对象

  - .reqNode request 对象

  - .resNode response 对象

  注意:在 Koa 中尽量使用Koa提供的封装对象

  - .requestKoa request 对象

  - .responseKoa response 对象

  - .state:用户数据存储空间

  - .app:当前应用程序实例 - Application 对象

======================================================================

const Koa = require('koa')
const app = new Koa()
app.use((ctx, next) => {
  ctx.body = '<strong />koa'
  next()
})
app.use((ctx, next) => {
  let n = Math.random()
  // ctx.n = n
  ctx.state.n = n
  next()
})
app.use((ctx, next) => {
  // 不推荐这种直接取上个中间件值的做法,虽然可以取得到
  // console.log(ctx.n)
  // 而应该用这种命名空间的写法
  console.log(ctx.state.n)
})
app.listen(8080, () => {
  console.log('app is runing 8080')
})
const Koa = require('koa')
const app = new Koa()
app.use((ctx, next) => {
  ctx.body = '<strong />koa'
  next()
})
app.use((ctx, next) => {
  let n = Math.random()
  ctx.n = n
  next()
})
app.use((ctx, next) => {
  // 不推荐这种直接取上个中间件值的做法,虽然可以取得到
  console.log(ctx.n)
})
app.listen(8080, () => {
  console.log('app is runing 8080')
})

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

瑞朋哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值