天天看點

使用typescript改造koa開發架構

原文位址:使用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

繼續閱讀