原文位址:使用typescript改造koa開發架構
強類型的 TypeScript 開發體驗和維護項目上相比 JavaScript 有着明顯的優勢,那麼對常用的腳手架進行改造也就勢在必行了。
接下來開始對基于 koa 架構的 node 後端腳手架進行改造:
項目開發環境 和 typescript 編譯環境的搭建;
對 node、koa、koa中間件和使用到的庫 添加類型化支援;
基于 typesript 的特性改造項目。
基于 gulp 搭建開發編譯環境,gulp-typescript 插件用于編譯 typescript 檔案, gulp-nodemon 則可以監控檔案内容的變更,自動編譯和重新開機node服務,提升開發效率。
gulpfile.js 的設定
tsconfig.json 的設定
當然 eslint 也要添加對 typescript 對支援
.eslintrc.json 的設定
最後就是設定 package.json 的 scripts
項目主要使用到了以下的元件
jsonwebtoken
koa
koa-body
koa-compress
koa-favicon
koa-logger
koa-router
koa-static
koa2-cors
log4js
那麼就要安裝對應的 type 檔案,當然别忘了 @types/node
.net mvc 架構有個很便利的地方就是 使用裝飾器對控制器進行配置,現在通過 typescript 的裝飾器也可以實作相同的功能。這裡需要使用到反射相關的庫 reflect-metadata,用過 Java 或 C# 的小夥伴,對反射的原理一定不陌生。
我們再也不需要在路由配置和控制器方法之間來回查找和比對了
我們已經把裝飾器添加到對應控制器的方法上了,那麼怎麼把中繼資料收集起來呢?這就需要用到 node 提供的 fs 檔案子產品,node服務第一次啟動的時候,掃描一遍controller檔案夾,收集到所有控制器子產品,結合裝飾器收集到的metadata,就可以把對應的方法添加到 koa-router。
這樣對koa項目腳手架的改造基本完成,源碼請檢視 koa-server