首先我們先來了解一下 Koa 是什麼,https://koa.bootcss.com/,這是 Koa 的官方網站,映入眼簾的第一句就是 Koa -- 基於 Node.js 平臺的下一代 web 開發框架。
在學習 Koa 之前我們應對 Node.js 有一定的基礎,我們都知道:
Node.js 是一個非同步的世界,官方 API 支援的都是 callback 形式的非同步程式設計模型,這會帶來許多問題,例如:1、callback 巢狀問題 2、非同步函式中可能同步呼叫 callback 返回 資料,帶來不一致性。為了解決以上問題 Koa 出現了。
koa 是由 Express 原班人馬打造的,致力於成為一個更小、更富有表現力、更健壯的 Web 框架。 使用 koa 編寫 web 應用,可以免除重複繁瑣的回撥函式巢狀, 並極大地提 升錯誤處理的效率。koa 不在核心方法中繫結任何中介軟體, 它僅僅提供了一個輕量優雅的 函式庫,使得編寫 Web 應用變得得心應手。開發思路和 express 差不多,最大的特點就是 可以避免非同步巢狀。
Koa2 的安裝與使用對 Node.js 的版本也是有要求的,Node.js 是有要求的,它要求 Node.js 版本高於 V7.6。因為 node.js 7.6 版本 開始完全支援 async/await,所以才能完全支援 Koa2。
安裝 Koa
安裝 Koa 框架和我們以前安裝其他模組是一樣的。
npm install --save koa / cnpm install --save koa
--save 引數,表示自動修改 package.json 檔案,自動新增依賴項。
接下來我們就實戰來看一下如何安裝使用一個最簡單的 Koa 應用並在本地執行。
首先我們先建立一個我們要開發的專案的目錄中,然後執行 npm init ,為我們的專案起個名字,然後一路回車,這樣就會在我們的專案目錄中建立一個最基本的 package.json 的檔案,接下來安裝我們要使用的 koa 模組 npm install koa --save ,這樣我們就引入了 koa 木塊,接下來就和 Express 模組是一樣的操作流程,我們在專案目錄中建立一個 app.js,在 app.js 中寫我們的程式就可以了。
最終我們建立的專案目錄如下:
我們在 app.js 中寫一個簡單的案例:
1 var koa = require("koa"); 2 3 var app = new koa(); 4 5 // Express 寫法 6 // app.use(function (req, res) { 7 // res.send("hello word") 8 // }); 9 10 app.use(async (ctx) => { 11 ctx.body = "hello word" 12 }); 13 14 app.listen(3000);
在上面的程式碼中,我們首先引入 koa 模組,然後建立一個 koa 例項,接下來和 Express 一樣的是建立一箇中間價,然後寫一個非同步函式來向前端頁面返回資料。
Express 的寫法在這裡就不做過多解釋了,我們來看一下 koa 寫法,我們通過 async ()=>{} 的非同步方法與前端建立連線,裡面會有一個 cxt 的引數,我們可以通過 ctx.body 的形式向前端傳送資料。
app.listen(3000); 來監聽 3000 埠,我們將程式執行起來,在前端輸入 localhost:3000
這樣我們就實現了一個最基本的 koa 的小案例,接下來我們會深入介紹 koa 框架。