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. 启动查看crontab日志服务

    方法1: . 修改rsyslog文件,将/etc/rsyslog.d/-default.conf 文件中的#cron.*前的#删掉: . 重启rsyslog服务service rsyslog rest ...

  2. 搭建WordPress个人博客

    1. 准备LNMP环境 LNMP 是 Linux.Nginx.MySQL 和 PHP 的缩写,是 WordPress 博客系统依赖的基础运行环境.我们先来准备 LNMP 环境 安装Nginx 使用 y ...

  3. CentOS6与CentOS7的网络区别

    回顾:物理层 关注的是接口物理特性,传输介质数据链路层 MAC地址,数据帧,以太网,交换机网络层 IP地址,数据包,IP\ICMP\ARP协议,路由器传输层 TCP.UDP,端口号,数据段应用层 HT ...

  4. K3CLOUD呼吸时间设置

  5. 在python的web框架Django中使用SQL Server

    在pycharm中安装 安装pyodbc和Django——pyodbc是一个用python写的ODBC引擎 安装Django-pyodbc-azure                  在后方网址中查 ...

  6. SpringCloud快速搭建

    1.SpringCloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.负载均衡.微代理.事件总线.全局锁.决策竞选.分布式会话等等.它运行环境简单,可以在开发 ...

  7. 关闭”xx程序已停止工作”提示窗口

    运行注册表编辑器,依次定位到HKEY_CURRENT_USER\Software\Microsoft\Windows\WindowsError Reporting,在右侧窗口中找到并双击打开Donts ...

  8. MOOC(2)-Django开发get、post请求,返回json数据

    1.对get请求直接返回参数 如果请求多个参数,也只能返回一个参数,这里只返回了username参数 如果想要返回多个参数值,可以返回json格式数据 2.对get请求返回json数据 # views ...

  9. 关于使用gitlab协同开发提交代码步骤

    记录使用gitlab协同开发时从自己的分支向master分支提交代码的步骤: 环境:安装了git和TortoiseGit(git的可视化工具) 1.首先切换到自己的分支(如果不在自己的分支) 2.gi ...

  10. 吴裕雄--天生自然 R语言开发学习:时间序列

    #-----------------------------------------# # R in Action (2nd ed): Chapter 15 # # Time series # # r ...