首先我們先來了解一下 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 框架。