课程名称: Node.js工程师养成计划
课程章节: koa框架重构篇 - Koa快速入门
课程讲师: 北瑶
课程内容:
Koa 简介与基础应用
Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。
安装npm install koa
简单例子
const Koa = require('koa')
const app = Koa()
app.use(async ctx => {
ctx.body = 'hello koa' // 返回给客户端
})
// 监听
app.listen(3000, () => {
console.log('http:127.0.0.1:3000')
})
Koa上下文处理 (Context)
Koa Context 将 node 的 request 和 response 对象封装到单个对象中,为编写 Web 应用程序和 API 提供了许多有用的方法。 这些操作在 HTTP 服务器开发中频繁使用,它们被添加到此级别而不是更高级别的框架,这将强制中间件重新实现此通用功能。
每个 请求都将创建一个 Context,并在中间件中作为接收器引用,或者 ctx 标识符,如以下代码片段所示:
app.use(async ctx => {
ctx; // 这是 Context
ctx.request; // 这是 koa Request
ctx.response; // 这是 koa Response
})
为方便起见许多上下文的访问器和方法直接委托给它们的 ctx.request或 ctx.response ,不然的话它们是相同的。 例如 ctx.type 和 ctx.length 委托给 response 对象,ctx.path 和 ctx.method 委托给 request。
Koa 路由与参数获取
安装
npm install @koa/router
const Router = require("@koa/router");//引入路由
const router = new Router()
router.get('/', async (ctx, next) => {
ctx.body = ctx.url
})
app.use(router.routes());//使用路由中间件
获取客户端请求参数
router.get('/id:123', async (ctx, next) => {
console.log(ctx.params)
})
错误异常接管
ctx.throw(400, '报错内容')
学习心得
通过这章学习明白了对koa的基础