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的更多相关文章
随机推荐
- redis day02
Redis -带过期时间的key 如何删除掉的? 在redis内部有个 过期字典,所有带过期时间的都有过期字典 默认情况下 redis每秒会进行着10次过期字典的扫描,在每一次扫描过程里,执行如下 ...
- [LC] 207. Course Schedule
There are a total of n courses you have to take, labeled from 0 to n-1. Some courses may have prereq ...
- ASP.NET防止连续多次点击提交按钮 导致页面重复提交
PS:实际使用中发现,第①种方法在火狐浏览中有时候有问题.第2种方法,在各个浏览器中都没问题 近做项目遇到了这样的情况: 公司网络比平常慢了不少,在点击保存按钮提交页面后需等待挺长的一段时间,忍不住手 ...
- Ubuntu中Unable to acquire the dpkg frontend lock解决方案
根据百度总结三种方式:第三种解决了我的问题 1. ps -e|grep apt-get 结果:6965 ? 00:00:01 apt-get 执行:sudo kill 6965 #强制解锁,会删除文件 ...
- rsyslog与journal日志架构
系统日志架构概述 在centos7系统中有两个日志服务,分别是传统的rsyslog和新添加的systemd-journal systemd-journal是一个改进型的日志管理服务,可以收集来自内核. ...
- getRandomInt getRandomString
import java.util.concurrent.ThreadLocalRandom; private static final String AB = "ABCDEFGHIJKLMN ...
- 吴裕雄--天生自然python学习笔记:pandas模块强大的数据处理套件
用 Python 进行数据分析处理,其中最炫酷的就属 Pa ndas 套件了 . 比如,如果我 们通过 Requests 及 Beautifulsoup 来抓取网页中的表格数据 , 需要进行较复 杂的 ...
- 吴裕雄--天生自然python学习笔记:python实现自动网页测试
Python 可实现的网页测试的功能十分强大,甚至能通 过编程来实现让绝大多数的测试过程自动化. 这对很多开 发者来说,绝对是不可多得的神器. hash lib 纽件可以判别文件是否有过更改,只需要用 ...
- verilog求倒数-ROM实现方法
采用线性逼近法结合32段线性查找表的方式来实现1/z的计算. 首先将1/32-1/64的定点化数据存放到ROM中,ROM中存放的是扩大了2^20 次方的数字四舍五入后的整数部分.n值越大,精度越大,误 ...
- XML的打包与解析
XML的打包与解析 一.XML语言的特点 1.XML独立于任何编程语言,允许人们按接收者容易解析的方式,对复杂数据进行编码.先来看一个简单的XML格式的文件: [XML] 纯文本查看 复制 ...