node不算語言,node.js是能夠在伺服器端運行JavaScript的開放原始碼、跨平台執行環境;node.js採用Google開發的V8執行程式碼,使用事件驅動、非阻塞和非同步輸入輸出模型等技術可提高效能,可最佳化應用程式的傳輸量和規模。
本文操作環境:Windows7系統,nodejs10.16.2版,Dell G3電腦。
node算語言嗎?
node不算語言。
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,以獨立伺服器執行。
目前,Node.js 已被IBM、Microsoft、Yahoo!、Walmart、Groupon、SAP[13]、LinkedIn、Rakuten、PayPal、Voxer[18]、GoDaddy等企業採用。
主要功能
V8引擎本身使用了一些最新的編譯技術。這使得用Javascript這類腳本語言編寫出來的程式碼運行速度獲得了極大提升,並節省了開發成本。對效能的苛求是Node的一個關鍵因素。 Javascript是事件驅動語言,Node利用了這個優點,寫出可擴展性高的伺服器。 Node採用了一個稱為「事件循環(event loop)」的架構,使得編寫可擴展性高的伺服器變得既容易又安全。提高伺服器效能的技巧有多種多樣。 Node選擇了一個既能提高效能,又能降低開發複雜度的架構。這是一個非常重要的特性。並發編程通常很複雜且佈滿地雷。 Node繞過了這些,但仍提供很好的效能。
Node採用一系列「非阻塞」函式庫來支援事件循環的方式。本質上就是為檔案系統、資料庫之類的資源提供介面。向檔案系統發送請求時,無需等待硬碟(尋址並檢索檔案),硬碟準備好的時候非阻塞介面會通知Node。該模型以可擴展的方式簡化了對慢資源的訪問, 直觀,易懂。尤其是對於熟悉onmouseover、onclick等DOM事件的用戶,更有一種似曾相識的感覺。
雖然讓Javascript運行於伺服器端不是Node的獨特之處,但卻是其一強大功能。不得不承認,瀏覽器環境限制了我們選擇程式語言的自由。任何伺服器與日益複雜的瀏覽器客戶端應用程式間共享程式碼的願望只能透過Javascript來實現。雖然還有其他一些支援Javascript在伺服器端 運作的平台,但因為上述特性,Node發展迅猛,成為事實上的平台。
在Node啟動的很短時間內,社群就已經貢獻了大量的擴充庫(模組)。其中很多是連接資料庫或是其他軟體的驅動,但還有很多是憑他們的實力製作出來的非常有用的軟體。
最後,不得不提的是Node社群。雖然Node計畫還非常年輕,但很少看到對一個計畫如此狂熱的社群。不管是新手,還是專家,大家都圍繞著項目,運用並貢獻自己的能力,致力於打造一個探索、支持、分享、聽取建議的樂土。
程式範例
用Node.js撰寫的HTTP Server版hello world範例:
const http = require('http'); http.createServer((request, response) => { response.writeHead(200, { 'Content-Type': 'text/plain' }); response.end('Hello World!'); }).listen(8000); console.log('Server running at http://127.0.0.1:8000/');
另一個簡單的TCP伺服器範例,監聽( Listening)連接埠7000並輸出(echo)先前輸入的訊息:
const net = require('net'); net.createServer(stream => { stream.write('hello\r\n'); stream.on('end', () => stream.end('goodbye\r\n')); stream.pipe(stream); }).listen(7000);
推薦學習:《node.js影片教學》
以上是node算語言嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!