Express光榮之路系列之一

2022-08-02 06:45:09 字數 1341 閱讀 6536

什麼是express?

express是node.js平台下乙個輕量級的、靈活的、強大的web開發框架。輕量級是因為當你開始使用express的之後它並沒有把各種各樣的功能都完全載入進來,這就使得它成為乙個伸縮自如的框架。它只給你提供了乙個web框架應該具有的基本特性,即使是它本身支援的那些特性也並非都預設可以直接呼叫,你可以根據自己的需求選擇相應的特性或者功能使用。

可能光聽我講這些概念性的東西並不能幫助大家清晰地認識express框架,下面給大家講一下express的歷史故事吧(我一向認為學習一項技術最好的開頭就是去了解這項技術的歷史,這樣我們就能知道這項技術誕生的背景,是為了滿足什麼需求而被發明出來。當我們跟隨作者的腳步見證乙個框架從最初的0.0.1成長到最新的版本,自然能對它的每乙個細節和本質形成感性的認識,這樣運用框架的時候就能舉重若輕了。)

express的故事

node 0.0.1版發布之後5個月之內,也就是2023年6月份,t.j.holowaychuk發布了express這個能簡化node平台下開發流程的開源專案。t.j.holowaychuk搭建express框架的靈感**於ruby的sinatra框架,同時是構建在node提供的api基礎之上的。雖然當時express框架還略顯粗糙,但是它提供了一些令人眼前一亮的功能——比如乙個路由系統、對session和cookie的支援、便利的mime操作、滿足rest風格的介面以及基於haml的模板系統等等,這些都是開發者們期待乙個web開發框架該具備的功能。

那麼問題來了,學挖掘機哪家強......咳咳,開個玩笑^_^。當時node平台下可就有2個不同的web開發框架:乙個是模仿sinatra構建的express,另乙個是模仿rack構建的connect。這就給web開發者們帶來不少困惑了,不管你選擇哪乙個框架,總得放棄另乙個框架提供的便捷性,腫麼辦?這個問題就連t.j.holowaychuk本人也感到困惑,他當時同時參與了express和connect兩個開源專案。

很明顯,connect和express是兩個優勢互補的框架。因此,2023年7月時t.j.holowaychuk決定重構express框架(有技術就是任性......),改為在connect的基礎之上構建express框架,於是就有了煥然一新的1.0.0版的express。express 1.0.0版出來之後,開發者再也不用被「選擇哪個框架」這樣的問題困擾了。直到今天,connect依然是express的地基,任何對connect專案的正式修改都會很快反映到express框架中。以上就是express的故事以及它和connect的關係,雖然開發者們如今幾乎不直接使用connect框架,但是在express中會用到大量的connect中介軟體,所以中介軟體在express中是非常重要的。

本篇未完待續to be continued...

SQL Server Index系列之一

agenda index structures primary key and clustered index constraints and indexes syntax for creating and managing indexes special indexes index access ...

Active Directory系列之一

為什麼需要域?對很多剛開始鑽研微軟技術的朋友來說,域是乙個讓他們感到很頭疼的物件。域的重要性毋庸置疑,微軟的重量級服務產品基本上都需要域的支援,很多公司招聘工程師的要求中也都明確要求應聘者熟悉或精通active directory。但域對初學者來說顯得複雜了一些,眾多的技術術語,例如active d...

Makefile學習之路之(一)

makefile 文字編輯三個要素 格式為 目標 依賴 tab命令 目標 所謂目標為為主目標鋪墊分支 類似於乙個變數的名稱,它對應執行命令 依賴 基礎檔案 編譯完成的檔案以及目標 命令基於的檔案 命令 為目標執行的命令。執行何種命令 phony 指定偽目標 偽目標會每次都被執行不進行檢查該目標是否為...