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的更多相关文章
随机推荐
- CHINA SHOP 2019 | 奇点云“云+端”产品及解决方案赋能线下零售
第二十一届中国零售业博览会(CHINA SHOP) 在山东青岛世界博览城盛大开幕 作为CHINA SHOP的老朋友 奇点云自然不会缺席 China Shop逛展直击灵魂“双拷问”: No.1 今年CH ...
- RDD(三)——transformation_value类型
map(func) 返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成.有多少个元素,func就被执行多少次. mapPartitions(func) 类似于map,但是,map函 ...
- OA项目-表结构
############### 新建APP并配置 ############### INSTALLED_APPS = [ ... 'apps.users.apps.UsersConfig', 'a ...
- 【转】HeadFirst 组合模式+迭代器错误原因以及解决代码
http://blog.csdn.net/sugar_girl/article/details/53400267 <HeadFirst JAVA设计模式>中用迭代器迭代组合模式是存 ...
- 奇点云COO刘莹应邀出席《APEC SME大数据与人工智能论坛》
10月24日-25日,由亚太经合组织(APEC).韩国中小型及初创企业管理局(the Ministry of SMEs & Startups of Korea)主办的「APEC SME 大数据 ...
- django框架进阶-使用缓存-长期维护
############### django-缓存页面 ############### ########################################### # 全站缓存, ...
- 微信小程序开发-易源API的调用
起因:在开发一款旅游类微信小程序时,需要接入大量的景点信息,此时可以选择自己新建数据库导入数据并读取,但是对于我来说,因为只有一个人,数据库还涉及到需要维护方面,选择调用已有API. 过程:首先查阅微 ...
- mysql挖掘与探索------第2章 索引1-1
1索引作用 说起提高数据库性能,索引是最物美价廉的东西了.不用加内存,不用改程序,不用调sql,只要执行个正确的’create index’,查询速度就可能提高百倍千倍,这可真有诱惑力.可是天下没有免 ...
- hadoop集群搭建(docker)
背景 目前在一家快递公司工作,因项目需要,对大数据平台做个深入的了解.工欲利其器必先利其器,在网上找了许多教程,然后自己搭建一个本地的环境并记录下来,增加一些印象. 环境搭建 1)Ubuntu doc ...
- async包 ES6 async/await的区别
最基本的async 包 ApCollection.find({}).toArray(function (err, aps) { var num = 0; async.whilst( function ...