日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Node.js—简介

發布時間:2025/4/16 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Node.js—简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、Node.js是什么

1. 基本概述

Node.js是一個可以讓JavaScript運行在服務器端的平臺。它是一個為實時Web應用開發而誕生的平臺,它從誕生之初就充分考慮了在實時響應、超大規模數據要求下架構的可擴展性。這使得它摒棄了傳統平臺依靠多線程來實現高并發的設計思路,而采用了單線程、異步I/O、事件驅動式的程序設計模式。

Node.js 有著強大而靈活的包管理器(node package manager, npm),目前已經有上萬個第三方模塊,其中有網站開發框架,有 MySQL、PostgreSQL、MongoDB數據庫接口,有模板語言解析、 CSS 生成工具、郵件、加密、圖形、調試支持,甚至還有圖形用戶界面和操作系統 API工具。

Node.js 可以作為服務器向用戶提供服務,與 PHP、 Python、 Ruby on Rails 相比,它跳過了 Apache、 Nginx 等 HTTP服務器,直接面向前端開發。 Node.js 的許多設計理念與經典架構(如 LAMP)有著很大的不同,可提供強大的伸縮能力 。

2. 相關名詞介紹

(1) JavaScript

JavaScript是由ECMAScript、文檔對象模型(DOM)和瀏覽器對象模型(BOM)組成的,而Mozilla則指出JavaScript由Core JavaScript和Client JavaScript組成的。Node.js中的JavaScript只是Core JavaScript,或者說是ECMAScript的一個實現,不包含DOM、BOM或者Client JavaScript,這是因為Node.js不運行在瀏覽器中,所以不需要使用瀏覽器中的許多特性。

(2) V8引擎

Node.js 的 JavaScript 引擎是 V8,來自 Google Chrome 項目。 V8 號稱是目前世界上最快的 JavaScript 引擎,經歷了數次引擎革命,它的 JIT(Just-in-time Compilation,即時編譯)執行速度已經快到了接近本地代碼的執行速度。 Node.js 不運行在瀏覽器中,所以也就不存在 JavaScript 的瀏覽器兼容性問題,你可以放心地使用 JavaScript 語言的所有特性。

二、Node.js能做什么

  • 具有復雜邏輯的網站;
  • 基于社交網絡的大規模 Web 應用;
  • Web Socket 服務器;
  • TCP/UDP 套接字應用程序;
  • 命令行工具;
  • 交互式終端程序;
  • 帶有圖形用戶界面的本地應用程序;
  • 單元測試工具;
  • 客戶端 JavaScript 編譯器;
  • Node.js 內建了 HTTP 服務器支持,也就是說你可以輕而易舉地實現一個網站和服務器的組合。

三、Node.js異步I/O與事件驅動

Node.js 最大的特點就是采用異步式 I/O 與事件驅動的架構設計。 傳統高并發架構方案是多線程模式,Node.js 使用的是單線程模型,對于所有 I/O 都采用異步式的請求方式,避免了頻繁的上下文切換。 Node.js 在執行的過程中會維護一個事件隊列,程序在執行時進入事件循環等待下一個事件到來,每個異步式 I/O 請求完成后會被推送到事件隊列,等待程序進程進行處理。

Node.js 的異步機制是基于事件的,所有的磁盤 I/O、網絡通信、數據庫查詢都以非阻塞的方式請求,返回的結果由事件循環來處理。

Node.js 進程在同一時刻只會處理一個事件,完成后立即進入事件循環檢查并處理后面的事件。這樣做的好處是,CPU 和內存在同一時間集中處理一件事,同時盡可能讓耗時的 I/O 操作并行執行。對于低速連接攻擊, Node.js 只是在事件隊列中增加請求,等待操作系統的回應,因而不會有任何多線程開銷,很大程度上可以提高 Web 應用的健壯性,防止惡意攻擊。

四、Node.js性能

Node.js 用異步式 I/O 和事件驅動代替多線程,帶來了可觀的性能提升。 Node.js 除了使用 V8 作為JavaScript引擎以外,還使用了高效的 libev 和 libeio 庫支持事件驅動和異步式 I/O。

Node.js 的開發者在 libev 和 libeio 的基礎上還抽象出了層 libuv。對于 POSIX①操作系統,libuv 通過封裝 libev 和 libeio 來利用 epoll 或 kqueue。

五、CommonJS規范

CommonJS 誕生了。 CommonJS 試圖定義一套普通應用程序使用的API,從而填補 JavaScript 標準庫過于簡單的不足。

CommonJS 規范包括了模塊(modules)、包(packages)、系統(system)、二進制(binary)、控制臺(console)、編碼(encodings)、文件系統(filesystems)、套接字(sockets)、單元測試(unit testing)等部分。

轉載于:https://www.cnblogs.com/hq82/p/10831569.html

總結

以上是生活随笔為你收集整理的Node.js—简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。