ckinmind / WebHub

📦前端资源/学习/问题整理中心,请看issue
109 stars 6 forks source link

koa2笔记碎片 #161

Open ckinmind opened 5 years ago

ckinmind commented 5 years ago

参考资料koa2入门笔记

  1. 每收到一个 http 请求,Koa 都会调用通过 app.use() 注册的 async 函数,同时为该函数传入 ctx 和 next 两个参数, 这里的 async 函数就是我们所说的中间件

  2. ctx 作为上下文使用,包含了基本的 ctx.requestctx.response。另外,还对 Koa 内部一些常用的属性或者方法做了代理操作,使得我们可以直接通过 ctx 获取

  3. next 参数的作用是将处理的控制权转交给下一个中间件,而 next() 后面的代码,将会在下一个中间件及后面的中间件(如果有的话)执行结束后再执行

  4. 如果一个中间件没有调用 await next(),会怎样呢?答案是『后面的中间件将不会执行』。 如果await next()后面没有中间件了,那么也将结束执行

  5. get请求,请求参数为URL路径后面以?开头的查询参数:如http://localhost:3000/home?id=1&name=hfimy。使用ctx.request.queryctx.request.querystring可以获取到查询参数。不同的是query返回的是对象,querystring返回的是字符串

  6. get请求,请求参数放在URL路径里面,如http://localhost:3000/home/1/hfimy。这种情况下,koa-router会把请求参数解析在params对象上,通过ctx.params可以获取到这个对象

  7. log4js 是 Node.js 中一个成熟的记录日志的第三方模块

ckinmind commented 5 years ago

koa中用的几个库相关

  1. koa-router: 用于描述 URL 与处理函数之间的对应关系的

  2. koa-bodyparser: post 请求通常都会通过表单或 JSON 形式发送,而无论是 Node 还是 Koa,都 没有提供 解析 post 请求参数的功能。引入一个koa-bodyparser包,不管是通过表单提交还是以JSON形式发送,我们都可以通过ctx.request.body获取到提交的数据

  3. koa-session2: 添加session?

  4. url-parse: 解析路由

ckinmind commented 5 years ago

koa-router中间件