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的更多相关文章

随机推荐

  1. kubernets基于容器日志的报警和服务自动恢复

    demo地址 https://github.com/cclient/kubernetes-filebeat-collector 高可用还谈不上,是对kubernete一种服务异常重启恢复的补充方案 之 ...

  2. 3)小案例三,加乐前端入口index.php

    之前的代码没有什么改动,唯一改动的就是我在之前的目录结构中加了  index.php作为前端的入口文件 目前,我的文件目录关系是: 然后我的index.php代码内容是: <?php /** * ...

  3. OpenCV 特征点检测

    #include <stdio.h> #include <iostream> #include "opencv2/core/core.hpp" #inclu ...

  4. python后端面试第一部分:python基础--长期维护

    1. 为什么学习Python? 2. 通过什么途径学习的Python? 3. Python和Java.PHP.C.C#.C++等其他语言的对比? 4. 简述解释型和编译型编程语言?   https:/ ...

  5. 【Linux_Shell 脚本编程学习知识点、判断传入参数是否是 整数】

    判断脚本传入的参数是否是整数 常用的几种方法 完整Shell 脚本如下: #!/bin/sh ##################################################### ...

  6. HttpClient系统日志配置

    详细介绍在:http://hc.apache.org/httpclient-3.x/logging.html 一般使用context logging基本够用,context logging解释原文如下 ...

  7. Cortana携手微软学术搜索,变身研究人员最佳个人助理

    编者按:在美国时间7月14日于微软总部雷蒙德召开的2014年微软教育峰会上,负责技术与研究的微软全球执行副总裁沈向洋博士在他的开幕主题演讲中正式宣布,Windows Phone 8.1系统中的虚拟个人 ...

  8. 2015-09-14-C++基础

    声明与定义 声音与定义的区别在于,声明没有给变量分配空间,而定义则给变量分配了空间:定义也是声明. extern int i; // 声明但未定义 int i ; //声明且定义 extern dou ...

  9. Linux 下centos7启动 Tomcat 抛出Can't connect to X11 window server 问题的解决方法

    1 问题 今天启动 Tomcat 后,登录页验证码不见了.在 localhost.xxx.log 发现以下错误: org.apache.catalina.core.StandardWrapperVal ...

  10. mode|平均数|方差|标准差|变异系数|四分位数|几何平均数|异众比率|偏态|峰态

    应用统计学 数据的概括性度量 集中趋势 Mode众数是唯一描述无序类别数据,由图可知众数便是图形中的峰. 对于类别变量,众数就是某一种类别. 中位数和平均数都可能不是样本中的值. 中位数不受极值影响, ...