首頁 >web前端 >前端問答 >node.js是伺服器語言嗎

node.js是伺服器語言嗎

WBOY
WBOY原創
2022-07-04 16:37:531999瀏覽

「node.js」不是伺服器語言,而是基於「Chrome V8」引擎的JavaScript運行環境;nodejs是使用了一個事件驅動、非阻塞式I/O模型,是能夠在伺服器端運行JavaScript的開放原始碼、跨平台執行環境。

node.js是伺服器語言嗎

本文操作環境:Windows10系統、nodejs 12.19.0版、Dell G3電腦。

node.js不是伺服器語言

而是一個基於Chrome V8引擎的JavaScript運行環境;nodejs使用了一個事件驅動、非阻塞式I/O模型,讓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,作為獨立伺服器執行。

簡單的說 Node.js 就是運行在服務端的 JavaScript。

Node.js 是一個基於Chrome JavaScript 執行階段建立的平台。

Node.js是一個事件驅動I/O服務端JavaScript環境,基於Google的V8引擎,V8引擎執行Javascript的速度非常快,效能非常好。

Node.js使用Google V8 JavaScript引擎,因為:

V8是基於BSD授權的開源軟體

V8速度非常快速

##V8專注於網路功能,在HTTP、DNS、TCP等方面更加成熟

Node.js已經有數萬模組,它們可以透過一個名為npm的管理器免費下載。 Node.js開發社群主要有兩個郵件列表、一個在freenode的名為#node.js的IRC頻道。

擴展知識

主要功能

V8引擎本身使用了一些最新的編譯技術。這使得用Javascript這類腳本語言編寫出來的程式碼運行速度獲得了極大提升,並節省了開發成本。對效能的苛求是Node的一個關鍵因素。 Javascript是事件驅動語言,Node利用了這個優點,寫出可擴展性高的伺服器。 Node採用了一個稱為「事件循環(event loop)」的架構,使得編寫可擴展性高的伺服器變得既容易又安全。提高伺服器效能的技巧有多種多樣。 Node選擇了一個既能提高效能,又能降低開發複雜度的架構。這是一個非常重要的特性。並發編程通常很複雜且佈滿地雷。 Node繞過了這些,但仍提供很好的效能。

Node採用一系列「非阻塞」函式庫來支援事件循環的方式。本質上就是為檔案系統、資料庫之類的資源提供介面。向檔案系統發送請求時,無需等待硬碟(尋址並檢索檔案),硬碟準備好的時候非阻塞介面會通知Node。該模型以可擴展的方式簡化了對慢資源的訪問, 直觀,易懂。尤其是對於熟悉onmouseover、onclick等DOM事件的用戶,更有一種似曾相識的感覺。

雖然讓Javascript運行於伺服器端不是Node的獨特之處,但卻是其一強大功能。不得不承認,瀏覽器環境限制了我們選擇程式語言的自由。任何伺服器與日益複雜的瀏覽器客戶端應用程式間共享程式碼的願望只能透過Javascript來實現。雖然還有其他一些支援Javascript在伺服器端 運作的平台,但因為上述特性,Node發展迅猛,成為事實上的平台。

在Node啟動的很短時間內,社群就已經貢獻了大量的擴充庫(模組)。其中很多是連接資料庫或是其他軟體的驅動,但還有很多是憑他們的實力製作出來的非常有用的軟體。

最後,不得不提的是Node社群。雖然No​​de計畫還非常年輕,但很少看到對一個計畫如此狂熱的社群。不管是新手,還是專家,大家都圍繞著項目,運用並貢獻自己的能力,致力於打造一個探索、支持、分享、聽取建議的樂土。

推薦學習:《

nodejs影片教學

以上是node.js是伺服器語言嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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