• 當前位置:首頁 > IT技術 > Web編程 > 正文

    對Node.js 的理解?優缺點?應用場景?
    2022-05-29 22:34:13

    概念

    是一個基于Chrome V8引擎的JavaScript運行環境,讓JavaScript 運行在服務端的開發平臺。Node. js是一個事件驅動、非阻塞式I/O的模型,輕量而又高效。瀏覽器是js的前端運行環境

    node.js是js的后端運行環境。

    優缺點

    優點

    處理高并發場景性能更佳

    適合I/O密集型應用,指的是應用在運行極限時,CPU占用率仍然比較低,大部分時間是在做 I/O硬盤內存讀寫操作

    缺點

    不適合CPU密集型應用(如復雜的數學計算)

    只支持單核CPU,不能充分利用CPU

    可靠性低,一旦代碼某個環節崩潰,整個系統都崩潰

    適用場景

    高并發、實時聊天、實時消息推送、客戶端邏輯強大的SPA(單頁面應用程序)。

    應用場景

    第一大類:用戶表單收集系統、后臺管理系統、實時交互系統、考試系統、聯網軟件、高并發量的web應用程序

    第二大類:基于web、canvas等多人聯網游戲

    第三大類:基于web的多人實時聊天客戶端、聊天室、圖文直播

    第四大類:單頁面瀏覽器應用程序

    第五大類:操作數據庫、為前端和移動端提供基于json的API

    node與Javascript的區別

    為什么要用Node.js

    (1)簡單, Node. js用 JavaScript、JSON進行編碼,簡單好學。

    (2)功能強大,非阻塞式I/O,在較慢的網絡環境中,可以分塊傳輸數據,事件驅動,擅長高并發訪問。

    (3)輕量級, Node. js本身既是代碼又是服務器,前后端使用同一語言。

    (4)可擴展,可以輕松應對多實例、多服務器架構,同時有海量的第三方應用組件。

    • 非阻塞I/O是指以異步來執行函數,先執行同步任務,耗時任務放在事件隊列中,以此輪詢執行
    • 高并發是指許多用戶同時訪問相同 API接口或 URL地址。這種情況常常發生在活躍用戶數量大、用戶聚集程度高的業務場景中。

    Node. js 有哪些全局對象?

    在瀏覽器 JavaScript 中,通常window 是全局對象, 而 Nodejs中的全局對象是 global,global全局對象則在全局作用域中,任何全局變量、函數、對象都是該對象的一個屬性值

    全局對象分類

    1.真正的全局對象

    Buffer

    可以處理二進制以及非Unicode編碼的數據

    process

    進程對象,提供有關當前進程的信息和控制

    console

    最常用的輸入內容的方式:console.log/console. info、console.error/console.warning、console.time/console.timeEnd 、console.trace、console .table。

    clearInterval、setInterval

    設置定時器與清除定時器

    clearTimeout、setTimeout

    設置延時器與清除延時器

    global

    全局命名空間對象,process、console、setTimeout等都有放到global中

    2.模塊級別的全局變量

    __dirname

    獲取當前文件所在的路徑,不包括后面的文件名

    __filename

    獲取當前文件所在的路徑和文件名稱,包括后面的文件名稱

    exports

    module.exports 用于指定一個模塊所導出的內容,即可以通過 require() 訪問的內容

    module

    對當前模塊的引用,通過module.exports 用于指定一個模塊所導出的內容,即可以通過 require() 訪問的內容

    require

    用于引入模塊、 JSON、或本地文件。 可以從 node_modules 引入模塊。

    Node.js核心模塊

    EventEmitter 、Stream、FS、Net和全局對象等。

    對 Node.js 中的 process 的理解?有哪些常用方法

    概念

    process 對象是一個全局變量,提供了有關當前 Node.js進程的信息并對其進行控制

    屬性

    process.env:環境變量,例如通過 `process.env.NODE_ENV 獲取不同環境項目配置信息

    process.nextTick:這個在談及 EventLoop 時經常為會提到

    process.pid:獲取當前進程id

    process.ppid:當前進程對應的父進程

    process.cwd():獲取當前進程工作目錄,

    process.platform:獲取當前進程運行的操作系統平臺

    process.uptime():當前進程已運行時間,例如:pm2 守護進程的 uptime 值

    進程事件: process.on(‘uncaughtException’,cb) 捕獲異常信息、 process.on(‘exit’,cb)進程推出監聽

    三個標準流: process.stdout 標準輸出、 process.stdin 標準輸入、 process.stderr 標準錯誤輸出

    process.title 指定進程名稱,有的時候需要給進程指定一個名稱

    方法

    process.cwd()

    返回當前 Node進程執行的目錄

    process.argv

    在終端通過 Node 執行命令的時候,通過 process.argv 可以獲取傳入的命令行參數,返回值是一個數組

    process.env

    返回一個對象,存儲當前環境相關的所有信息,一般很少直接用到。

    process.nextTick()

    NodeJs是基于事件輪詢,在這個過程中,同一時間只會處理一件事情,在這種處理模式下,process.nextTick()就是定義出一個動作,并且讓這個動作在下一個事件輪詢的時間點上執行

    Node. js中的異步和同步

    Node.js是單線程的,異步是通過一次次的循環事件隊列來實現的。同步則是阻塞式的IO,這在高并發環境中會是一個很大的性能問題,所以同步一般只在基礎框架啟動時使用,用來加

    載配置文件、初始化程序等。

    本文摘自 :https://www.cnblogs.com/

    開通會員,享受整站包年服務
    国产呦精品一区二区三区网站|久久www免费人咸|精品无码人妻一区二区|久99久热只有精品国产15|中文字幕亚洲无线码