ThinkJS 3.0 正式版發佈!

ThinkJS 是一款擁抱將來的 Node.js Web 框架,致力於集成項目最佳實踐,規範項目讓企業級團隊開發變得更加簡單,更加高效。咱們的 Github 地址是:https://github.com/thinkjs/th... 歡迎你們 star~html

ThinkJS 2.x 發佈的時候,雖然咱們帶來了不少很是棒的功能,但咱們也意識到自己的不足。針對這些問題,開發團隊通過幾個月的緊張開發,咱們很高興的宣佈,ThinkJS 迎來了新的大版本 3.0。目前該版本已經在線上多個項目中使用,簡單一個命令就可讓你下載使用它:git

npm install -g think-cli

有哪些更新?

正如以前所說,爲了解決以前遺留的不足問題咱們開發了新版本,下圖爲咱們新版的架構圖。github

除了引進了新的架構,對框架進行高度解構外,咱們還增長了不少新的功能,優化了老版爲人詬病的用法,下面就讓咱們來具體看看有哪些更新吧。數據庫

基於 Koa 重構框架架構

相較於以前使用自身集成架構,3.0 最大的改變就是將底層架構基於 Koa 重構。重構以後的 ThinkJS 3.0 版本能徹底兼容 Koa 的中間件。使用 Koa 重構主要有下面幾個緣由:npm

  • 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 重構後在這塊作了精簡,再也不提供豐富的功能,而是提供一個最基本的核心,而後經過擴展知足更多的需求。bash

多進程模型

ThinkJS 2.x 單進程是可選配置,且框架設計較爲簡單,不少功能須要開發者手動處理。咱們在 3.0 中開發了 think-cluster 模塊直接內置了多進程模型,最大限度的利用多核 CPU 提升響應速度。 同時,提供一套進程之間通訊的方式,如::通知其餘進程執行某個任務,代碼在線更新後重啓全部的子進程。架構

智能的錯誤提示

Node.js 開發中一個比較頭疼的問題就是錯誤處理問題,遇到問題後查錯和定位問題後比較麻煩,尤爲是使用了 Babel 轉譯以後,爲此咱們專門開發了 think-trace 模塊用來跟蹤錯誤問題,可以更加友好的捕捉顯示錯誤堆棧信息。框架

還有!

除了剛纔說的一些功能,咱們還有一些其它的更新要告訴你們:異步

感謝

最後感謝全部使用 ThinkJS 框架的用戶,感謝大家多年來的支持,是大家的存在讓咱們有了更進一步的勇氣。固然還須要感謝全部爲 ThinkJS 項目作過貢獻的貢獻者,包括代碼貢獻和文檔貢獻,大家的努力讓 ThinkJS 變的愈來愈棒!若是沒時間幫助貢獻代碼想用其它方式支持咱們也能夠經過捐贈的方式支持咱們,大家的捐贈會用來幫助 ThinkJS 推廣。感謝大家全部人,讓咱們一塊兒擁抱 ThinkJS,期待更美好的將來吧!async

相關文章
相關標籤/搜索