当前位置:网站首页 > iOS应用开发 > 正文

Web应用开发框架-koa(五)——koa总结之koa特点、koa-route路由 & 中间件之洋葱模型、异步中间件、中间件的合成 & 错误处理之http状态码、koa抛出错误、错误处理中间件

Web应用开发框架-koa(五)——koa总结之koa特点、koa-route路由 & 中间件之洋葱模型、异步中间件、中间件的合成 & 错误处理之http状态码、koa抛出错误、错误处理中间件

web应用框架

第一章 koa入门

  • koa特点
    • 下一代框架,思想很超前
    • 新的语法,es7
    • 优雅
  • 安装
    • npm install koa
  • 基本用法
    • 起服务
      • app.listen(3000)
    • http response
      • 服务端需要知道客户端要什么?
        • 客户端 request.accepts
        • 服务端 response.type
    • 返回html片段
      • 首先使用fs读取
      • ctx.response返回数据
        • 注意一个问题: 路径 path.resolove
  • 路由
    • 原生 通过 ctx.request.path
    • koa-route
      • route.get()
    • 静态资源服务
      • 传统: 一个图片 一个路由
      • koa-static 一行命令搞定静态资源服务的搭建
    • 重定向
      • status 302
      • 应用场景: 登录
  • 中间件
    • 非常核心!!!
    • 可以解决通用的问题
    • next
    • 洋葱模型
      • 在next里面,其实next代表的是什么?
        • 当前执行函数的,下一个app.use的谁,指的就是谁?
    • 异步中间件
      • async await
      • 注意: app在use的时候,需要把其它的中间件都改为async 和 await的模式
    • 中间件的合成
      • koa-compose 应用场景: 合并中间件
      • compose的概念
        • 自右向左执行的
        • 第一个函数,可以接受多个参数,并返回一个值。
        • 后面的函数只能接受一个参数,并返回一个值
  • 错误处理
    • 常见的http状态吗
      • 200 ok
      • 304 协商缓存 强缓存 200
      • 404, 401 客户端错误
      • 500 服务器错误
    • koa抛出错误
      • Ctx.throw
      • Ctx.response.status 然后 修改 body
    • 错误处理中间件
      • 使用try catch
      • 再try中执行 next函数
      • catch next发生的错误
      • 洋葱模型中有一处发生了错误都会被catch到
    • error事件的监听啊
      • app.on(‘error’)
      • ctx.app.emit(‘error’)
      • 继承自nodejs中的event对象下的 eventEmit
    • 解析post中的body
      • 通过监听 data, end,解析buffer 二进制 toString方法
      • Koa-body
        • 注意: 结合的是 koa-router
        • 你在哪里写路由就在哪引入koa-body 按需引用
    • 文件上传
      • koa-body
      • 创建一个临时目录
      • post form-data
      • 写入一个pipe流存储文件到指定目录
到此这篇Web应用开发框架-koa(五)——koa总结之koa特点、koa-route路由 & 中间件之洋葱模型、异步中间件、中间件的合成 & 错误处理之http状态码、koa抛出错误、错误处理中间件的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • Web应用开发框架-egg(一)——Egg入门、Egg与Koa的关系 & 快速入门之编写Controller、静态资源2024-12-02 21:45:04
  • Web应用开发框架-egg(二)——快速入门之模板渲染、编写helper扩展、编写Middleware、渐进式开发 & egg总结2024-12-02 21:45:04
  • Web应用开发框架-egg(三)01-基础功能——目录结构的约定之框架规定的目录、内置插件约定的目录 & 内置对象之Application、context、Request & Response等2024-12-02 21:45:04
  • Web应用开发框架-egg(三)02-基础功能——运行环境 & Config配置之多环境配置、配置写法、配置加载顺序、合并规则、配置结果2024-12-02 21:45:04
  • Web应用开发框架-egg(三)03-基础功能——中间件之编写中间件、中间件的配置、使用中间件、在框架和插件中使用中间件 & 中间件的通用配置项2024-12-02 21:45:04
  • Web应用开发框架-koa(四)——koa错误处理之状态码 & koa抛错两种方式-try和catch、ctx.app.emit() & koa-body模块处理错误 & koa-body处理文件上传2024-12-02 21:45:04
  • Web应用开发框架-koa(三)——koa中间件之概念、洋葱模型-执行顺序、异步中间件、koa-compose中间件合成-compsoe函数2024-12-02 21:45:04
  • Web应用开发框架-koa(一)——koa入门与使用、context对象 & 读取并返回html片段之response把读取的内容返回给客户端2024-12-02 21:45:04
  • 嵌入式驱动开发和应用开发的区别(嵌入式软件开发和驱动开发)2024-12-02 21:45:04
  • 苹果个人开发者账号和企业开发者账号的区别(ios开发者账号个人版和企业版)2024-12-02 21:45:04
  • 全屏图片