使用Koa.js離不開這十個中間件

clipboard.png

隨着ES6的普及,async/await的語法受到更多JS開發者的青睞,Koa.js做爲比較早支持使用該語法的Node框架愈來愈受到你們的喜好,雖然Koa.js自己支持的功能頗有限,但官方和社區提供了不少各類功能的中間件,本文精選了其中的十個,對於咱們開發應用程序或者框架將會特別有用。前端

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-routerjson

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這樣的外部存儲設備。session

No.6 koa-jwt

隨着網站先後端分離方案的流行,愈來愈多的網站從Session Base轉爲使用Token Base,JWT(Json Web Tokens)做爲一個開放的標準被不少網站採用,koa-jwt這個中間件使用JWT認證HTTP請求。app

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 提供了更豐富的功能。koa

No.10 koa-convert

對於比較老的使用Generate函數的koa中間件(< koa2),官方提供了一個靈活的工具能夠將他們轉爲基於Promise的中間件供Koa2使用,一樣也能夠將新的基於Promise的中間件轉爲舊式的Generate中間件。

連接:https://www.jianshu.com/p/c1e0ca3f9764
來源:簡書
相關文章
相關標籤/搜索