koa
Akimoto Hiroshi
这个作者很懒,什么都没留下…
展开
-
promise异步异常处理----async和await
对于方法fn中出现的异步异常,我们不能用普通的try…catch…方法捕捉到异常,需要这样做:把抛出异步异常的方法用promise包裹用await获取fn的返回值: await fn(), await作用是计算表达式try...catch捕获异常如果连续几个函数调用,在每个可能会抛出异常的调用处,一定要加上await和async我们看下面的例子:function func1() { func2()}async function func2() { try { conso原创 2021-02-25 23:43:53 · 874 阅读 · 0 评论 -
koa请求参数获取
koa中我们用ctx.params获取url路径中的请求参数,用ctx.query获取?后面的查询字符串参数,用ctx.headers获取headers因为在app.js中配置了koa-bodyparser可以用ctx.request.body获取post传递的json参数打个断点,用postman发送请求结果:...原创 2021-02-25 21:13:21 · 1431 阅读 · 0 评论 -
重构代码-InitManager初始化管理器
项目结构:代码:// app.jsconst Koa = require('koa')const requireDirectory = require('require-directory')const Router = require('koa-router')// app就是应用程序对象,里面包含各种中间件const app = new Koa()requireDirectory(module, './app/api/v1', { visit: whenLoadModule})原创 2021-02-25 21:02:49 · 299 阅读 · 0 评论 -
require-directory实现路由自动加载和注册
传统的引入路由,需要一个一个require引入:如果很很多路由,那就太麻烦了,我们可以通过require-directory来实现自动批量加载路由:再看看我们的路由是怎么写的:我们这里路由默认module.exports = router,直接把router导出,而没有使用module.exports = { xxx: router }的方式,因为用后者的话,比较麻烦,app.js里面遍历的代码就要修改了...原创 2021-02-25 18:59:30 · 393 阅读 · 0 评论 -
koa2路由浅析
koa里面我们不能直接return一个值出去,这样前端是获取不到这个值的我们需要把值(实际开发中大多数是json)挂载在ctx.body上面,这样前端就可以获取到数据了我们如果返回一个对象,koa会自动把这个对象转化为json对象,并且在Response Headers里添加Content-Type: application/jsonkoa-routerkoa-router使用可以分这三个步骤:...原创 2021-02-25 16:49:54 · 124 阅读 · 0 评论 -
koa多router拆分
api版本问题:api请求携带版本号3个常用方法:1.url路径里添加版本号 2.版本号加在查询字符串里 3.版本号加在header里原因:客户端兼容性 v1 v2 v3开闭原则修改关闭,扩展开放多路由拆分:我们把v1版本的路由放在api/v1中在v1的book.js中,我们写book相关的路由逻辑,这样拆分每个路由模块,都先实例化一个独立的router负责,最后导出负责这块路由的router:// book.jsconst Router = require('koa-route原创 2021-02-25 16:49:23 · 480 阅读 · 0 评论 -
koa2洋葱模型之为什么要保证洋葱模型
这样的代码,按照洋葱模型,感觉打印顺序应该是1-3-4-2,其实结果是:为什么?因为中间件没有全部使用async和await所以为了保证洋葱模型,我们必须在每个中间件上加上async和await,改进以后:洋葱模型的先决条件:在每个中间件调用下一个中间件的时候(next()),前面一定要加上await最后,为什么要保持这个洋葱模型呢?因为很多时候我们在一个app里面有好多中间件,有些中间件需要依赖其他中间件的结果,那么如果没有洋葱模型就可能会出错中间件之间的通信可以通过ctx挂载的方.原创 2021-02-25 14:44:53 · 379 阅读 · 0 评论 -
axios取消请求
错误写法:能看出来哪里错了吗?config.CancelToken = source.token这句代码错了,很容易写错的一个地方,把config.cancelToken写成了config.CancelTokenconfig的属性cancelToken中的c是小写的!原创 2021-02-16 00:59:00 · 117 阅读 · 0 评论 -
koa2初探之访问静态资源 | 获取get参数 | post参数 | responseText响应字符串 | 渲染json数据
访问静态资源静态资源都放在public里面我们在public/images里面放一张图片odst.jpg就可以在浏览器通过http://localhost:3000/images/odst.jpg访问到这章图片获取get参数// public/sports.htmlvar xhr = new XMLHttpRequest() xhr.onload = () => { console.log('response arrived') }原创 2021-02-15 15:05:09 · 794 阅读 · 0 评论 -
koa2初探之项目搭建
安装koa:npm i -g koa-generator使用koa2命令创建项目demo:koa2 demo会自动创建项目需要的文件切换到项目demo的目录:cd demo安装依赖:npm i启动项目:npm run dev打开浏览器,输入:http://localhost:3000/说明koa脚手架启动成功我们来看一下项目结构:...原创 2021-02-15 10:58:37 · 253 阅读 · 0 评论