Koa.js笔记

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Koa.js笔记相关的知识,希望对你有一定的参考价值。

一、路由

可以使用router的库
koa没有路由处理,需要自己去找库

二、静态资源处理

npm i koa-static
如果路径想使用别名,需要引入另一个包
npm i koa-mount

路由重定向

router.get(\'/bar\', ctx => 
  ctx.redirect(\'/foo\')
)

三、中间件执行栈结构

洋葱模型

先进后出
如果没有next()就不会往下走

const fs = require(\'fs\')
const mount = require(\'koa-mount\')
const util = require(\'util\')

const app = new Koa()


app.use(async (ctx, next) => 
  const data = await util.promisify(fs.readFile)(\'./views/index.html\',\'utf8\')
  ctx.type = \'html\'
  ctx.body = data
  next()
)

四、中间件合并处理

npm i koa-compose

const compose = require(\'koa-compose\')

// a1、a2、a3是三个中间件
app.use(compose([a1,a2,a3]))

五、中间件异常处理

app.use(ctx => 
  try 
    JSON.parse(\'ABCDE\')
    ctx.body = \'hello koa\'
   catch (err) 
    // ctx.response.status = 500
    // ctx.response.body = \'服务端内部错误\'
    ctx.throw(500)
  
)

如果不想在每个中间件中写的话,可以在最外面写一个

// 在最外层添加异常捕获的中间件
app.use(async (ctx, next) => 
  try 
    await next()
   catch (err) 
    ctx.status = 500
    ctx.body = \'服务端内部错误\'
  
)

六、Koa的异常处理

app.on(\'error\',err => 
  console.log("app error", err);
)

每个请求都会创建一个独立的Context上下文对象,它们之间不会互相污染

基于Koa.js和React开发Web应用


以往介绍项目教程的时候,小编都会说一段前言,引出项目介绍,今天小编不多说其他的,直接进入项目,嘿嘿~


项目名称:


【基于Koa.js和React开发应用】


项目简介:


该项目是用Koa.js+React开发的一个Web应用:其中Koa.js提供API服务、React渲染UI组件、前端路由通过React-Router管理;工具方面,使用Babel支持ES6最新语法,使用Gulp和Webpack自动化编译JavaScript。


通过该项目的学习,你可以学习React以及Koa.js的实际应用,同时了解相关技术的使用。


关于该项目的详细开发文档呢,点击最底部的“阅读原文”,即可在线查看啦~


在线开发环境:


你可以访问实验楼网站在线学习该项目教程,不但有详细的开发文档,引导你进行项目开发,更有在线开发环境让你可以随时动手操作学习,跟着文档开发项目,更高效的进行项目开发学习~



在线开发环境示意图


React和koa.js简介


React 起源于 Facebook 的内部项目,因为该公司对市场上所有 JavaScript MVC 框架,都不满意,就决定自己写一套,用来架设 Instagram 的网站。做出来以后,发现这套东西很好用,就在2013年5月开源了。由于 React 的设计思想极其独特,属于革命性创新,性能出众,代码逻辑却非常简单。所以,越来越多的人开始关注和使用,认为它可能是将来 Web 开发的主流工具。


koa 是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套,并极大地提升错误处理的效率。koa 不在内核方法中绑定任何中间件,它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。


点击“阅读原文”,马上查看开发文档~


点击下方
阅读文档

以上是关于Koa.js笔记的主要内容,如果未能解决你的问题,请参考以下文章

KOA学习笔记

《Koa2进阶学习笔记》完结

基于Koa.js和React开发Web应用

Firebase 功能:koa.js 服务器如何部署

手写Koa.js源码

KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架之koahub