koa01
1、koa简介
koa是express团队开发的一个更加轻量级的服务端开发框架,也是未来的趋势
2、安装
npm i -g koa-generator //全局安装koa脚手架
3、创建项目
koa2 项目名称
例如:koa2 -e koa2-learn //e的意思是使用ejs模板引擎,要不默认jade
将为我们创建一个koa-learn目录
接下来进入该目录,根据提示执行cnpm i
可能需要进行2次安装,看提示有无Pass --update-binary...
复制DEBUG...代码,运行koa
在package.json文件中可以修改启动方式:
npm run dev可以实现修改过程中的监听
端口默认运行在3000
4、
koa中的全局变量被称为global而不是window
5、koa异步,es6异步语法
async(param)=>{
await ... //只有在有声明async的方法内才准使用await
}
解决回调地狱,我们可以使用Promise,也可以使用await
举例分析:
const a=await A
const b=await B
const c=await C
上述代码为伪代码,ABC是不同的异步操作
在A未执行完成前不会执行下一行代码,以此类推
相当于用同步的写法完成了异步的过程
这里的ABC就是Promise对象,如果不是promise对象将自动转换,即Promise.resolve(data)

正确执行promise过程后的传给resolve的data将被赋值给a
6、koa2中间件
const+require引入中间件。通过app.use声明使用

引用时按顺序,使用时没有顺序
中间件都会被经过两次
一个简单的中间件编写:
function pv(ctx){
//ctx是一个全局对象,挂载了request和response的信息
global.console.log(ctx.path)
module.export=function(){
return async function(ctx,next){
pv(ctx)
await next()//pv中间件处理完毕,准许移交下一个中间件处理
}
}
}
使用时,在app.js中书写:
const pv=require('./middleware/koa-pv')
app.use(pv())

保证了两次交互。
8、koa-router 的用法:
根据子域名不同可配置不同的路由文件:
body属性返回相应的一些数据,可以返回多种类型:字符串,json等
render方法返回一个页面
const router =require('koa-router')
router.prefix('./user')
9、koa读写cookie


ctx.get/ctx.set
koa01的更多相关文章
随机推荐
- Office 365 邮件流
进入Exchange管理中心->点击左侧的“邮件流”->进入邮件流配置页面. 一.规则 规则也称传输规则,对通过组织传递的邮件,根据设定条件进行匹配,并对其进行操作.传输规则与众多电子邮件 ...
- ionic3 修改打包时 android sdk 路径
修改 /platforms/android/local.properties 文件
- LeetCode No.136,137,138
No.136 SingleNumber 只出现一次的数字 题目 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次.找出那个只出现了一次的元素. 说明:你的算法应该具有线性时间复 ...
- python之接口自动化测试框架
梳理python+unittest接口自动化测试框架的思路: 1.确定目录: cases:存放测试用例的py文件:config:存放一些数据库,环境地址等固定不变的信息: core:核心的文件, ca ...
- Traffic Network in Numazu
Traffic Network in Numazu 题目描述 Chika is elected mayor of Numazu. She needs to manage the traffic in ...
- VSTO外接程序项目只用1个文件实现Ribbon CustomUI和CustomTaskpane定制【VB.Net版】
VSTO中的自定义功能区和自定义任务窗格需要用到各种命名空间.添加所需文件,才能实现.后来我发现可以把所有代码都写在ThisAddin.vb这个默认文件中. 大家可以在Visual Studio中创建 ...
- 文本输入框input将输入转换为统一大小写
转载地址:http://blog.csdn.net/yieryi_/article/details/52078596 文本输入框input将输入转换为统一大小写,通常有两种方法:JS和CSS方法. 1 ...
- Cow Routing(最短路spfa)
题:https://www.luogu.org/problem/P3115 题意:给出起点A,终点B,N条路线,下面没俩行一个路线,第一行是俩个数,第一个为这条路线的花费,第二个为这条路线经过的点数n ...
- JVM简述
JVM的东西太多了,我们刚开始学java的时候,就会接触堆.栈,还有方法区,因为我们要知道new出来的对象放在哪里,局部变量放在哪里,static修饰的变量放在哪里. 我从网上截一个图: 这里有三大部 ...
- 系统学习javaweb重点难点1--如何区分<input/>框里的三种常用属性:type属性 name属性 和 value属性
感想:这是我系统学习javaweb的时候感觉这个是一个初学者十分容易搞混的点 学习笔记: 首先,是type属性. 表单输入项标签之一,用户可以在该标签上通过填写和选择进行数据输入. type属性设置该 ...