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的更多相关文章
随机推荐
- PictureService
package me.zhengjie.tools.service; import me.zhengjie.tools.domain.Picture; import org.springframewo ...
- 数据结构与算法 python课后题(未完成)
挖一个坑,先立个flag,后面慢慢填坑. 先放个其它人写的链接
- Longest Increasing Subsequence (Medium)
第一次做题思路201511092250 1.采用map存储,key为nums[i],value为以nums[i]为结尾的最大递增子序列的长度 2.采用map里面的lower_bounder函数直接找出 ...
- Eclipse中项目过大引起的 IDE 加载缓慢,JVM 内存不足的情况解决
如果 IDE 加载项目非常缓慢,甚至常常出现卡死的情况,有可能是开发工具设置的 JVM 内存不够引起的.解决办法:找到 Eclipse 的安装目录,修改 Eclipse.ini 配置文件.修改此配置文 ...
- H5页面如何引入vConsole
vConsole github地址vConsole 是腾讯开源的项目,这就简单的介绍一下使用 使用npm引入vconsole.min.js下载 vConsole 的最新版本.(不要直接下载 dev 分 ...
- LeetCode Day 13
LeetCode0026 给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空 ...
- 发现个很有意思的angularjs +grunt 复习项目
最近作运维工作 docker 接触到一个开源webui dockerui 原项目地址 https://github.com/crosbymichael/dockerui 用angular框架实现,项目 ...
- Eclipse 配置Android 开发环境
1.eclipse安装ADT插件. 地址:http://dl-ssl.google.com/android/eclipse/ 2.安装成功后,提示重启.重新启动后弹出android sdk 的路径选择 ...
- Linux Ubuntu 查看IP
一.第一种方式:ifconfig -a 1.打开命令终端:Crtl + Alt + T 2.执行命令:ifconfig -a 如果你没有安装net-tools工具,则出现如下显示: (没有找到'ifc ...
- MySQL性能优化最佳实践 - 05 MySQL核心参数优化
back_log参数的作用 指定MySQL可能的TCP/IP的连接数量(一个TCP/IP连接占256k),默认是50.当MySQL主线程在很短的时间内得到非常多的连接请求,该参数就起作用,之后主线程花 ...