首頁  >  文章  >  web前端  >  nodejs是做什麼的

nodejs是做什麼的

藏色散人
藏色散人原創
2021-09-01 11:52:1626176瀏覽

nodejs是能夠在伺服器端運行JavaScript的開放原始碼、跨平台運行環境;Node.js採用Google開發的V8運行程式碼,使用事件驅動、非阻塞和非同步輸入輸出模型等技術來提高效能,可優化應用程式的傳輸量和規模。

nodejs是做什麼的

本文操作環境:windows7系統、nodejs10.16.2版,DELL G3電腦。

nodejs是做什麼的?

Node.js 是能夠在伺服器端執行 JavaScript 的開放原始碼、跨平台運作環境。 Node.js 由 OpenJS Foundation(原為 Node.js Foundation,已與 JS Foundation 合併)持有與維護,也為 Linux 基金會的專案。 Node.js 採用 Google 開發的 V8 運行程式碼,並使用事件驅動、非阻塞和非同步輸入輸出模型等技術來提高效能,可最佳化應用程式的傳輸量和規模。這些技術通常用於資料密集的即時應用程式。

Node.js 大部分基本模組都用 JavaScript 語言寫。在 Node.js 出現之前,JavaScript 通常是作為客戶端程式設計語言使用,而以JavaScript 寫出的程式常在使用者的瀏覽器上執行。 Node.js 的出現讓 JavaScript 也能用於服務端程式設計。 Node.js 含有一系列內建模組,讓程式可以脫離 Apache HTTP Server 或 IIS,以獨立伺服器運作。

nodejs介紹:

Node.js是目前非常火熱的技術,但它的誕生經驗卻很奇特。

眾所周知,在Netscape設計出JavaScript後的短短幾個月,JavaScript事實上已經是前端開發的唯一標準。

後來,微軟透過IE擊敗了Netscape後一統桌面,結果幾年時間,瀏覽器毫無進步。 (2001年推出的古老的IE 6到今天仍然有人在使用!)

沒有競爭就沒有發展。微軟認為IE6瀏覽器已經非常完善,幾乎沒有改進之處,然後解散了IE6開發團隊!而Google卻認為支援現代Web應用的新一代瀏覽器才剛起步,尤其是瀏覽器負責運行JavaScript的引擎效能還可提升10倍。

先是Mozilla借助已壯烈犧牲的Netscape遺產在2002年推出了Firefox瀏覽器,緊接著Apple於2003年在開源的KHTML瀏覽器的基礎上推出了WebKit核心的Safari瀏覽器,不過僅限於Mac平台。

隨後,Google也開始創建自家的瀏覽器。他們也看中了WebKit內核,於是基於WebKit內核推出了Chrome瀏覽器。

Chrome瀏覽器是跨Windows和Mac平台的,並且,Google認為要運行現代Web應用,瀏覽器必須有一個性能非常強勁的JavaScript引擎,於是Google自己開發了一個高性能JavaScript引擎,名字叫V8,以BSD許可證開源。

現代瀏覽器大戰讓微軟的IE瀏覽器遠遠地落後了,因為他們解散了最有經驗、戰鬥力最強的瀏覽器團隊!回過頭再追趕卻發現,支援HTML5的WebKit已經成為手機端的標準了,IE瀏覽器從此與主流行動端設備絕緣。

瀏覽器大戰和Node有何關係?

話說有個叫Ryan Dahl的歪果仁,他的工作是用C/C 寫高效能Web服務。對於高效能,非同步IO、事件驅動是基本原則,但是用C/C 寫就太痛苦了。於是這位仁兄開始設想用高階語言開發Web服務。他評估了許多高階語言,發現很多語言雖然同時提供了同步IO和非同步IO,但是開發人員一旦用了同步IO,他們就再也懶得寫非同步IO了,所以,最終,Ryan瞄向了JavaScript。

因為JavaScript是單執行緒執行,根本不能進行同步IO操作,所以,JavaScript的這個「缺陷」導致了它只能使用非同步IO。

選定了開發語言,還要有執行引擎。這位仁兄曾考慮自己寫一個,但明智地放棄了,因為V8就是開源的JavaScript引擎。讓Google投資去優化V8,咱只負責改造一下拿來用,還不用付錢,這個買賣很划算。

於是在2009年,Ryan正式推出了基於JavaScript語言和V8引擎的開源Web伺服器項目,命名為Node.js。雖然名字很土,但是,Node第一次把JavaScript帶進後端伺服器開發,加上全世界已經有無數的JavaScript開發人員,所以Node一下子就火了起來。

在Node上執行的JavaScript相比其他後端開發語言有何優點?

最大的優勢是藉助JavaScript天生的事件驅動機制加V8高效能引擎,讓編寫高效能Web服務變得輕而易舉。

其次,JavaScript語言本身就是完善的函數式語言,在前端開發時,開發人員往往寫得比較隨意,讓人感覺JavaScript就是個「玩具語言」。但是,在Node環境下,透過模組化的JavaScript程式碼,加上函數式編程,且無需考慮瀏覽器相容性問題,直接使用最新的ECMAScript 6標準,可以完全滿足工程上的需求。

我還聽過io.js,這又是什麼鬼?

因為Node.js是開源項目,雖然由社群推動,但幕後一直由Joyent公司資助。由於一群開發者對Joyent公司的策略不滿,於2014年從Node.js項目fork出了io.js項目,決定單獨發展,但兩者實際上是相容的。

然而中國有句古話,叫做「分久必合,合久必分」。分家後沒多久,Joyent公司表示要和解,於是,io.js專案又決定回歸Node.js。

具體做法是未來io.js會先加入新的特性,如果大家測試用得爽,就把新特性加入Node.js。 io.js是“嚐鮮版”,而Node.js是線上穩定版,相當於Fedora Linux和RHEL的關係。

推薦學習:《nodejs影片教學

以上是nodejs是做什麼的的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn