ThinkJS 3 正式版發布,Node.js Web 框架
ThinkJS是一款擁抱未來的 Node.js Web 框架,致力于集成項目最佳實踐,規范項目讓企業級團隊開發變得更加簡單,更加高效。我們的 Github 地址是: https:// github.com/thinkjs/thin kjs 歡迎大家 star~
在發布的時候,雖然我們帶來了很多非常棒的功能,但我們也意識到本身的不足。針對這些問題,開發團隊經過幾個月的緊張開發,我們很高興的宣布,ThinkJS迎來了新的大版本 3.0。目前該版本已經在線上多個項目中使用,簡單一個命令就可以讓你下載使用它:
npm install -g think-cli
有哪些更新?
正如之前所說,為了解決之前遺留的不足問題我們開發了新版本,下圖為我們新版的架構圖。
除了引進了新的架構,對框架進行高度解構外,我們還增加了很多新的功能,優化了老版為人詬病的用法,下面就讓我們來具體看看有哪些更新吧。
基于 Koa 重構框架架構
相較于之前使用自身集成架構,3.0 最大的改變就是將底層架構基于 Koa 重構。重構之后的 ThinkJS 3.0 版本能完全兼容 Koa 的中間件。使用 Koa 重構主要有下面幾個原因:
-
Koa 現在已經比較穩定,洋蔥模型的中間件更能滿足多維度的需求,同時中間件生態已經慢慢成熟。這些都是 ThinkJS之前所不具備的,基于 Koa 后就可以站在巨人的肩膀上,可以做的更好。
-
Koa 2.0 中使用更優雅的 async/await 解決異步問題,這個理念和 ThinkJS是完全一致的。借助 Babel 在 ThinkJS 2.x 版本中就可以使用這些 ES next 語法功能。隨著 Node 8.x LTS 的即將發布, async/await 被原生支持后我們就可以不用借助 Babel 轉譯直接在生產環境中使用了。
精簡核心,支持擴展和適配器
ThinkJS 2.x版本內置了很多功能,這些功能基本上是很多項目的最佳實踐,但并不一是每個項目都需要這些所有的功能,但基于 2.x 的架構要實現這個需求就非常困難。所以 ThinkJS 3.0版本基于 Koa 重構后在這塊做了精簡,不再提供豐富的功能,而是提供一個最基本的核心,然后通過擴展滿足更多的需求。
多進程模型
ThinkJS 2.x單進程是可選配置,且框架設計較為簡單,很多功能需要開發者手動處理。我們在 3.0 中開發了 think-cluter模塊直接內置了多進程模型,最大限度的利用多核 CPU 提高響應速度。 同時,提供一套進程之間通信的方式,如::通知其他進程執行某個任務,代碼在線更新后重啟所有的子進程。
智能的錯誤提示
Node.js 開發中一個比較頭疼的問題就是錯誤處理問題,遇到問題后查錯和定位問題后比較麻煩,尤其是使用了 Babel 轉譯之后,為此我們專門開發了 think-trace模塊用來跟蹤錯誤問題,能夠更加友好的捕捉顯示錯誤堆棧信息。
還有!
除了剛才說的一些功能,我們還有一些其它的更新要告訴大家:
-
增加 think-crontab模塊,強化框架的定時任務功能
-
重構日志功能,基于 think-logger3模塊構建框架日志系統
-
重構框架數據庫操作邏輯,增加 think-model, think-mongoose, think-sequelize模塊完善框架數據庫操作功能
感謝
最后感謝所有使用 ThinkJS框架的用戶,感謝你們多年來的支持,是你們的存在讓我們有了更進一步的勇氣。當然還需要感謝所有為 ThinkJS 項目做過貢獻的貢獻者,包括代碼貢獻和文檔貢獻,你們的努力讓 ThinkJS 變的越來越棒!如果沒時間幫助貢獻代碼想用其它方式支持我們也可以通過捐贈的方式支持我們,你們的捐贈會用來幫助 ThinkJS 推廣。感謝你們所有人,讓我們一起擁抱 ThinkJS,期待更美好的未來吧!