首頁  >  文章  >  web前端  >  node.js有哪些特性

node.js有哪些特性

青灯夜游
青灯夜游原創
2022-07-18 17:56:434116瀏覽

nodejs有三個特性:1、伺服器端;Nodejs運作在伺服器端,為Javascript提供運作環境的環境服務。 2.非阻塞異步;Nodejs採用了非阻塞型I/O機制,在做I/O操作的時候不會造成任何的阻塞。 3、事件驅動;當進來一個新的請求的時,請求將會被壓入一個事件隊列中,然後通過一個循環來檢測隊列中的事件狀態變化,如果檢測到有狀態變化的事件,那麼就執行此事件對應的處理代碼。

node.js有哪些特性

本教學操作環境:windows7系統、nodejs16版,DELL G3電腦。

什麼是Node.js?

Node.js 是一個開源與跨平台的JavaScript 執行環境,或者說,是一個平台。

在瀏覽器外運行 V8 JavaScript 引擎(Google Chrome 的核心),利用事件驅動、非阻塞和非同步輸入輸出模型等技術提高效能。

可以理解為 Node.js 就是一個伺服器端的、非阻塞式I/O的、事件驅動的 JavaScript運作環境。

就如上述描述,不難得出,Node.js 有三個特性 : 伺服器端、 非阻塞式I/O、事件驅動。接下來,我們就三個特性進行剖析:

  • ① 伺服器端:字面意思,Node.js 運行在伺服器端,為 Javascript提供運行環境的環境服務。

  • ② 非阻塞異步: Node.js 採用了非阻塞型I/O 機制,在做I/O 操作的時候不會造成任何的阻塞,當完成之後,以時間的形式通知執行操作。

    例如在執行了存取資料庫的程式碼之後,將立即轉而執行其後面的程式碼,並將資料庫傳回結果的處理程式碼放在回呼函數中,從而提高了程式的執行效率。

  • ③ 事件驅動: 事件驅動就是當進來一個新的請求的時,請求將會被壓入一個事件佇列中,然後透過一個循環來偵測佇列中的事件狀態變化,如果偵測到有狀態變化的事件,那麼就執行該事件對應的處理程式碼,一般都是回呼函數

    例如讀取一個文件,文件讀取完畢後,就會觸發對應的狀態,然後透過對應的回呼函數來進行處理

知識拓展:

node.js 是一個單執行緒服務(JS本來無論在瀏覽器端還是服務端都是單線程)。同時,擁有世界最大的開源庫生態系統: npm。

Node.js 有哪些優缺點?

> 優點

  • #處理高並發場景效能更佳

  • 適合I/O密集型應用,值的是應用在運行極限時,CPU佔用率仍然比較低,大部分時間是在做I/O硬碟記憶體讀寫操作

#> 缺點

因為Node.js 是單線程,帶來的缺點有:

  • 不適合CPU密集型應用

  • 只支援單核心CPU,不能充分利用CPU

  • #可靠性低,一旦程式碼某個環節崩潰,整個系統就會崩潰。

node.js有哪些特性

Node.js 能做什麼?

  • 提供資料給瀏覽器展示
  • 儲存使用者提交過來的資料
  • 資料統計與分析

#Node.js 的模組系統

#在Node.js 中沒有全域作用域的概念;
Node.js 中,只能透過require 方法來載入執行多個JavaScript 腳本檔;
require 載入只能是執行其中的程式碼,檔案與檔案之間由於是模組作用域,所以不會有污染的問題;

  • 模組完全是封閉的

  • 外部無法存取內部

  • 內部也無法存取外部

模組作用域雖然可以帶來了一些好處,可以載入執行多個文件,可以完全避免變數命名衝突污染的問題。
但是在某些情況下,模組與模組是需要進行通訊的。在每個模組中,都提供了一個物件:‘exports’,該物件預設是一個空物件。
在使用過程中,需要被外部存取使用的成員手動的掛載到'exports' 介面物件中,
然後誰來'require' 這個模組,誰就可以得到模組內部的exports 介面物件。

核心模組

核心模組是由Node 提供的一個個的具名的模組,它們都有自己特殊的名稱標識,例如:

  • fs:檔案操作模組

  • http:網路服務建構模組

  • #os:作業系統資訊模組

  • #path:路徑處理模組

所有核心模組在使用的時候都必須手動的先使用require#方法來加載,然後才可以使用,例如: 'var fs = require('fs')'

#Node.js 應用場景

借助Nodejs的特點和弊端,其應用場景分類如下:

  • #善於I/O,不善於計算。因為Nodejs是一個單線程,如果計算(同步)太多,則會阻塞這個線程;

  • 大量並發的I/O,應用程式內部並不需要進行非常複雜的處理;

  • websocket 配合,開發長連接的即時互動應用程式,即:即時通訊;

具體場景可以表現為如下:

① 使用者表單收集系統、後台管理系統、即時互動系統、考試系統、連網軟體、高並發量的web應用程式;

② 基於web、canvas等多人聯網遊戲;

③ 基於web 的多人即時聊天用戶端、聊天室、圖文直播;

④ 單頁瀏覽器應用程式;

⑤操作資料庫、為前端和行動端提供基於json的API;

其實,Node.js 能實現幾乎一切的應用,只不過需要考慮的是當前場景是否適合使用Node.js, 使用Node.js 是否” 最優解“,需要考慮效能問題。

更多node相關知識,請造訪:nodejs 教學

以上是node.js有哪些特性的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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