JavaScript本為前端頁面的腳本程式語言,以JavaScript 寫出的程式,用戶須在瀏覽器上執行,故此,JavaScript的採用多在前端的程式開發。
2009年,美國軟件工程師瑞安·達爾,以Javascript 和 C+,結合了Google的V8、事件驅動模式和低階I/O介面,編寫了Node.js,令JavaScript 的應用,跳出瀏覽器,在用於侍服器的終端上;換言之,自Node.js 的出現,JavaScript已不只用於前端編程,亦可應用於後端開發。
Node.js 含有一系列內建模組,如 HTTP 模組,使建置網站脫離 Apache HTTP Server,令伺服器能獨立於前端,兩者能分離運作。
Node.js 可視作為一個微型作業系統,在執行環境中(runtime environment)運作,發展至今日,Node.js 已是很多前後端框架的執行環境,前端就有Angular.js 、React.js和Vue.js等等。
而後端的應用,因Node.js的modules 極有限,不敷應用於現實各種商業邏輯,於是便有Express.js 的出現,它是Node.js 的 web應用框架,除了簡化一些Node.js 原有功能的編程外(如HTTP modules),亦提供更多物件和方法處理較複雜的商業應用,彌補了Node.js 的功能不足。
自Node.js 和Express.js提供了完善的後端開發方案,能創造API 給前端所用後,Javascript的網站堆疊方法就再不局限於LAMP Stack,過往十多年出現多樣化的框架組成,如MEAN Stack 和JAM Stack 等等,可真如雨後春筍,令編程者有更多的堆疊選擇。
就讓我們加以學習Node.js 和Express.js 吧!