開發Koa 必須用的外掛

lq_prototype發表於2019-02-19

No.1 koa-router

路由是Web框架必不可少的基礎功能,koa.js為了保持自身的精簡,並沒有像Express.js自帶了路由功能,因此koa-router做了很好的補充,作為koa星數最多的中介軟體,koa-router提供了全面的路由功能,比如類似Express的app.get/post/put的寫法,URL命名引數、路由命名、支援載入多箇中介軟體、巢狀路由等。其他可選路由中介軟體:koa-route, koa-joi-router, koa-trie-router

No.2 koa-bodyparser

koa.js並沒有內建Request Body的解析器,當我們需要解析請求體時需要載入額外的中介軟體,官方提供的koa-bodyparser是個很不錯的選擇,支援x-www-form-urlencoded, application/json等格式的請求體,但不支援form-data的請求體,需要藉助 formidable 這個庫,也可以直接使用 koa-body 或 koa-better-body

No.3 koa-views

koa-views對需要進行檢視模板渲染的應用是個不可缺少的中介軟體,支援ejs, nunjucks等眾多模板引擎。

No.4 koa-static

Node.js除了處理動態請求,也可以用作類似Nginx的靜態檔案服務,在本地開發時特別方便,可用於載入前端檔案或後端Fake資料,可結合 koa-compress 和 koa-mount 使用。

No.5 koa-session

HTTP是無狀態協議,為了保持使用者狀態,我們一般使用Session會話,koa-session提供了這樣的功能,既支援將會話資訊儲存在本地Cookie,也支援儲存在如Redis, MongoDB這樣的外部儲存裝置。

No.6 koa-jwt

隨著網站前後端分離方案的流行,越來越多的網站從Session Base轉為使用Token Base,JWT(Json Web Tokens)作為一個開放的標準被很多網站採用,koa-jwt這個中介軟體使用JWT認證HTTP請求。

No.7 koa-helmet

網路安全得到越來越多的重視,helmet 通過增加如Strict-Transport-Security, X-Frame-Options, X-Frame-Options等HTTP頭提高Express應用程式的安全性,koa-helmet為koa程式提供了類似的功能,參考Node.js安全清單。

No.8 koa-compress

當響應體比較大時,我們一般會啟用類似Gzip的壓縮技術減少傳輸內容,koa-compress提供了這樣的功能,可根據需要進行靈活的配置。

No.9 koa-logger

koa-logger提供了輸出請求日誌的功能,包括請求的url、狀態碼、響應時間、響應體大小等資訊,對於除錯和跟蹤應用程式特別有幫助,koa-bunyan-logger 提供了更豐富的功能。

No.10 koa-convert

對於比較老的使用Generate函式的koa中介軟體(< koa2),官方提供了一個靈活的工具可以將他們轉為基於Promise的中介軟體供Koa2使用,同樣也可以將新的基於Promise的中介軟體轉為舊式的Generate中介軟體。

原文連結

相關文章