koa框架

koa介绍

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框架_第1张图片

一个简单的koa服务器

koa框架_第2张图片

// 创建服务器;

const Koa = require("koa");

let app = new Koa();  //Application

// 中间件;

app.use(ctx=>{            //context对象

    ctx.body = "hello world 你好";

})

app.listen(3000);


koa中间件middleware

koa框架_第3张图片
koa框架_第4张图片

// 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");s

}

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);     koa已经封装好了,用ctx.response、ctx.request方便

    // 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);


koa框架_第5张图片



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框架_第6张图片

二、koa-views 

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

安装 koa-views

        npm i koa-views -S

使用koa-view

三、koa-static

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

安装 koa-static 

    npm i koa-static

使用koa-static

koa框架_第7张图片

你可能感兴趣的:(koa框架)