3.koa框架

koa介绍             网址:koa.bootcss.com

koa是express原班人马打造的轻量、健壮、富有表现力的nodejs框架。目前koa有koa1和koa2两个版本;koa2依赖Node.js 7.6.0或者更高版本;koa不在内核方法中绑定任何中间件,它仅仅是一个轻量级的函数库,几乎所有功能都必须通过第三方插件来实现。

koa安装

npm init -y  创建package.json

npm i koa -s  安装koa

执行顺序,洋葱模型

创建一个简单的koa服务器

// 创建服务器;

const Koa = require("koa");

let app = new Koa();              //Application

// 中间件;

app.use(ctx=>{                    //context 对象、环境、上下文

    ctx.body = "hello world 你好";

})

app.listen(3000);


Koa 利用中间件 控制"上游",调用"下游“;

  - koa是包含一组中间件函数的对象;可以将app.use里的函数理解成中间件

koa中间件middleware

 

// koa  express 是nodejs的框架;轻量级;

// 创建服务器;

const Koa = require("koa");

let app = new Koa();  //Application

// 中间件;函数;

// ctx:context简写;(res和req);

let m1 = function(ctx,next){

    console.log("m1start");

    // throw new Error("some error...");

    next();  //转交控制权给下一个中间件;m2();

    console.log("m1end");

}

let m2 = function(ctx,next){

    console.log("m2start");

    next();

    console.log("m2end");

}

app.use(m1);

app.use(m2);

app.use(async ctx=>{

    //1. 异步处理: async await;

//    let res = await new Promise(resolve=>{

//         setTimeout(() => {

//             resolve("结果");

//         }, 1000);

//     })

//     console.log(res)

    // console.log(ctx.req.url);

    // 2. 获取get参数; ctx封装;

    // console.log(ctx.request.query.age);

    // ctx.res  ==== res; ctx.req=== req;

    // ctx.response  koa封装的res ctx.request koa封装的req

    // 3.别名;res输出;  ctx.body(别名) 完整写法;ctx.response.body;

    // 4.中间件执行顺序;

    ctx.response.body = "hello world 你好";

})

// 错误处理中间件;

app.on("error",err=>{

    console.log("??",err);

})

app.listen(3000);


ctx.request.body      请求.body

ctx.request.query      请求.查询      ?后参数可以不给

ctx.params.id            参数.id         id为必须参数


koa常用中间件介绍

一、koa-router  

        路由是引导匹配之意,是匹配url到相应处理程序的活动。

koa-router安装

npm i koa-router -S

Koa-router使用

Koa-router推荐使用RESTful架构API。Restful的全称是Representational State Transfer 即表现层转移。

        RESTful是一种软件架构风格、设计风格,而**不是**标准,只是提供了一组设计原则和约束条件。基于这个风格设计可以更简洁,更有层次;

        非RESTful架构api:

        使用RESTful架构设计api

        REST设计一般符合如下条件:

                程序或者应用的事物都应该被抽象为资源

                每个资源对应唯一的URI(uri是统一资源标识符)

                使用统一接口对资源进行操作

                对资源的各种操作不会改变资源标识

                所有操作都是无状态的

二、koa-views 

    Koa-views用于加载html模板文件;

安装 koa-views

        npm i koa-views -S

 

三、koa-static

   koa-static     是用于加载静态资源的中间件,通过它可以加载css、js等静态资源;

安装 koa-static 

    npm i koa-static -S

使用koa-static

四、koa-bodyparser

    npm i koa-bodyparser -S

拿到koa post提交数据

 

五、md5

    npm i md5 -S

用于加密

 

六、koa-server-http-proxy

    npm i koa-server-http-proxy -S

koa路由        const koaServerHttpProxy = require("koa-server-http-proxy");


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值