Nodejs的學習筆記(2)

koa

1、koa 介紹

koa是express原班人馬打造的輕量、健壯、富有表現力的nodejs框架。目前koa有koa1和koa2兩個版本;koa2依賴Node.js 7.6.0 或者更高版本;koa不在內核方法中綁定任何中間件,它僅僅是一個輕量級的函數庫,幾乎所有功能都必須通過第三方插件來實現。

2、koa使用

  • koa安裝

    $ npm i koa
    
  • 一個簡單的koa服務器

    const Koa = require('koa');
    const app = new Koa();
    
    app.use(async ctx => {
      ctx.body = 'Hello World';
    });
    app.listen(3000);
    
  • Koa 利用中間件 控制"上游",調用"下游“;

    koa是包含一組中間件函數的對象;可以將app.use裏的函數理解成中間件

    //這裏的middleWare函數就是一箇中間件
    let middleWare = async (ctx,next)=>{
        console.log("first middleWare");
        ctx.body = "hello world";
    }
    app.use(middleWare);
    

    通過next()將控制轉交給另一箇中間件;
    上述過程也可以通過"洋蔥模型“來解釋中間件執行順序
    在這裏插入圖片描述

3、Application對象

  • application是koa的實例 簡寫app

  • app.use 將給定的中間件方法添加到此應用程序,分爲同步和異步,異步:通過es7中的async和await來處理

  • app.listen設置服務器端口;

  • app.on 錯誤處理;

4、上下文context對象常用屬性及方法

  • context 將node中的request和response 封裝到一個對象中,並提供一些新的api提供給用戶進行操作;

    ctx.app:應用程序實例引用,等同於app;
    ctx.req:Node 的 request 對象.
    ctx.res:Node 的 response 對象.
    ctx.request:koa中的Request對象;
    ctx.response:koa中的response對象;
    ctx.state:對象命名空間,通過中間件傳遞信息;
    ctx.throw:拋出錯誤;
    
  • request及response別名
    koa會把ctx.requset上的屬性直接掛載到ctx上如:

    ctx.header //頭信息;
    ctx.headers
    ctx.method
    ctx.method=
    ctx.url
    ctx.url=
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章