13 款驚豔的 Node.js 框架——第1部分
【編者按】本文作者為 Peter Wayner,主要介紹13款至精至簡的 Node.js 框架,幫助你簡化高速網站、豐富 API 以及實時應用的開發流程。本文系國內 ITOM 管理平臺 OneAPM 編譯呈現,以下為正文的第一部分。
Node.js 推出至今也有些年頭了,但它就像那初生的太陽,充滿朝氣。人們不斷地探索更新更好的平臺資訊釋出方式,於是選擇也越來越多。這些努力最終催生了多款 Node.js 框架,不論是 Node.js 愛好者還是新手,都可以盡情探索,尋求新的提升。
在下文中,筆者將介紹最引人注目的十多款框架。這些框架能有效簡化複雜網站的構建流程。如果你正打算開始新的專案,不妨嘗試其中的一些框架,可快速完成前期工作,並體驗這些專案中捆綁的功能。
1、express
Express 是一款以輕量級的方式處理請求的框架。它將 URL 對映至模板,將來自通用資料儲存中的資料填入值中。其標準的模板引擎為 Consolidate,但是由於樣式相當簡單,大多數模板引擎都能良好執行。
Express 團隊許諾說,MySpace 欲意採用 Express 打造新版本,以此提高其時髦度。如果你不知道 MySpace 為何物,可以問問祖父母,他們或許還有 MySpace 賬號。
Express 基於 MIT 許可證釋出,其 GitHub 地址在此。
2、Koa.js
打造 Express 的團隊決定更進一步,使用全新可伸縮的呼叫棧構建新一代框架。名為 Koa.js 的呼叫棧允許你在呼叫及響應握手時新增新的特性。一開始,你需要寫一點程式碼來處理請求,但之後,就可以自定義請求處理的全過程。負責所有互動和錯誤處理的中介軟體都可以加以修改。此外,還有十多項外掛包,為呼叫棧新增了壓縮、快取、JSON 編碼等功能。
上圖展示了與 Koa 捆綁的某個模板庫使用的部分 Jade 標記。
Koa 基於 MIT 許可證釋出,其 GitHub 地址在此。
3、Total.js
Total.js 棧的設計初衷是儘可能實現自動化。從 HTML 和 CSS 標記模板出發,Total 可以將之編譯為原始程式碼,壓縮之後再進行釋出。從某種意義上講,Total 是偽裝為框架的一個強力網站編譯器。
上圖展示了一個壽司吧網站的例項。
Total 基於 MIT 許可證釋出,其 GitHub 地址在此。
4、Derby.js
Node.js 的一個重要特點是在瀏覽器與伺服器端使用相同的語言。Derby.js 通過試圖在兩端執行相同的程式碼,並同步執行結果,將這一特點發揮到極致。之後,它通過模板渲染、打包以及一些 MVC 來簡化這一過程。你無需擔心諸如編譯 CSS 程式碼的問題,因為 Derby 整合了這些功能。
上圖展示了一個基本的待辦事物清單。
Derby 基於 MIT 許可證釋出,其 GitHub 地址在此。
5、Meteor.js
Meteor.js是一款實時應用,其設計初衷是打造與伺服器持續同步的 Web 應用。對模板或資料進行的修改會自動從伺服器端傳到瀏覽器端。重新描繪與更新操作直接由底層框架負責。並且,這一機制是雙向的。瀏覽器程式碼進行改動或寫入資料時就像直接運算元據庫一樣。同步完全在後臺進行。
上圖展示了一個在 Meteor 中打造的用於同步急救先鋒隊任務的應用。
Meteor 基於 Apache 許可證釋出,在其官網與 Github 均可找到安裝指令碼。
6、restify
並非每個應用都要求瀏覽器的全面支援。Restify 是旨在僅通過 API 提供資料的伺服器端框架。成功執行之後,Restify 輸出的是 JSON 資料。
Restify 相當強調除錯與分析,因此你可以深入鑽研、優化伺服器的效能。DTrace 整合效能好,支援度高,能清晰瞭解應用狀況,預測可能出現的錯誤。
上圖展示了一個在除錯會話中儲存的審計資料包。
Restify 基於非常基本的許可證釋出,使用時要求註明版權。其 GitHub 地址在此。
以上為前6個框架,欲知後續內容,敬請關注 OneAPM 官方技術部落格。
OneAPM 能幫助您輕鬆鎖定 Node.js 應用效能瓶頸,通過強大的 Trace 記錄逐層分析,直至鎖定行級問題程式碼。以使用者角度展示系統響應速度,以地域和瀏覽器維度統計使用者使用情況。想閱讀更多技術文章,請訪問 OneAPM 官方部落格。
本文轉自 OneAPM 官方部落格
相關文章
- 驚豔的渲染效果!
- 分享5款小眾良心軟體,好用到讓人驚豔
- 跳動的“loading”,個個都很驚豔!
- css樣式相關的驚豔的屬性CSS
- SmallerAPK,第1部分:APK的剖析APK
- 《控制》IGN 8.8 分:難以忘懷的驚豔
- Bioware的沒落?殘缺卻驚豔的《聖歌》
- 分享web前端裡驚豔的HTML5的demoWeb前端HTML
- 第 13 篇:DRF 框架之 API 版本管理框架API
- 一個令人驚豔的ChatGPT專案,開源了!ChatGPT
- [Node.js月刊]2018年第1期Node.js
- [譯] Node.js 高效能和可擴充套件應用程式的最佳實踐 [第 1/3 部分]Node.js套件
- OPPO A7外觀評測賞析:OPPO又一款驚豔水滴屏之作
- FBS2017:伊利智慧驚豔登場
- Spring 的優秀工具類盤點第 1 部分Spring
- 《Divinuet》的互動音樂系統 – 第 1 部分
- 安利一個驚豔的紅樓夢視覺化作品視覺化
- 總結28個令人驚豔的JavaScript單行程式碼JavaScript行程
- 網易花4年做了一款主攻“全球化”的MMO,剛曝光就多次驚豔外媒
- 你要默默的學會這些,慢慢的驚豔所有人
- 如何寫出一個驚豔面試官的深複製?面試
- 一些驚豔到我的運維實施技巧和思路運維
- mybatis系列第1篇:框架原理MyBatis框架
- mORMot模糊概念--FormatSQL-第1部分ORMSQL
- 最受歡迎的 5 款 Node.js 端到端測試框架Node.js框架
- 驚豔,Dubbo域名已改,也不再侷限於Java!!Java
- 25年磨一劍 華為CloudLink新品驚豔亮相Cloud
- 這 10 套專案,一個比一個驚豔!
- 多年經驗總結,寫出最驚豔的 Markdown 高階用法
- 文案唯美,畫面驚豔,現象級遊戲如何打造?遊戲
- 黑客:你要悄悄變富,然後驚豔所有人……黑客
- 如何用ppt做出驚豔的視覺化圖表?教你3個妙招視覺化
- 13、Node.js 全域性物件Node.js物件
- Steam好評率超八成,這款bilibili遊戲自研產品詮釋了何為驚豔遊戲
- 【譯】什麼是SOLID原則(第1部分)Solid
- [譯] Xcode 和 LLDB 高階除錯教程:第 1 部分XCodeLLDB高階除錯
- Django入門指南-第1部分(環境搭建)Django
- 遊戲音訊存檔 | 第 1 部分:基本情況遊戲音訊
- OPPO Find X屏佔比高達93.8% 比vivo NEX更驚豔