Node.js運(yùn)行時(shí)由哪些模塊組成

本篇內(nèi)容主要講解“Node.js運(yùn)行時(shí)由哪些模塊組成”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Node.js運(yùn)行時(shí)由哪些模塊組成”吧!

作為一家“創(chuàng)意+整合+營銷”的成都網(wǎng)站建設(shè)機(jī)構(gòu),我們?cè)跇I(yè)內(nèi)良好的客戶口碑。成都創(chuàng)新互聯(lián)提供從前期的網(wǎng)站品牌分析策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、成都網(wǎng)站建設(shè)、創(chuàng)意表現(xiàn)、網(wǎng)頁制作、系統(tǒng)開發(fā)以及后續(xù)網(wǎng)站營銷運(yùn)營等一系列服務(wù),幫助企業(yè)打造創(chuàng)新的互聯(lián)網(wǎng)品牌經(jīng)營模式與有效的網(wǎng)絡(luò)營銷方法,創(chuàng)造更大的價(jià)值。

nodejs是基于Chrome JavaScript運(yùn)行時(shí)建立的一個(gè)平臺(tái),是讓JavaScript可以運(yùn)行在服務(wù)端的開發(fā)平臺(tái),主要用于方便地搭建響應(yīng)速度快、易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用。

Node.js運(yùn)行時(shí)由哪些模塊組成

本教程操作環(huán)境:windows7系統(tǒng)、nodejs 12.19.0版,DELL G3電腦。

Node.js 是一個(gè)基于Chrome JavaScript 運(yùn)行時(shí)建立的一個(gè)平臺(tái),是 讓JavaScript 運(yùn)行在服務(wù)端的開發(fā)平臺(tái),它讓JavaScript成為與PHP、Python、Perl、Ruby等服務(wù)端語言平起平坐的腳本語言。

Node.js是一個(gè)事件驅(qū)動(dòng)I/O服務(wù)端JavaScript環(huán)境,基于Google的V8引擎,V8引擎執(zhí)行Javascript的速度非???,性能非常好。

Node.js用于方便地搭建響應(yīng)速度快、易于擴(kuò)展的網(wǎng)絡(luò)應(yīng)用。

運(yùn)行時(shí)是什么?

所謂運(yùn)行時(shí),就是程序在運(yùn)行期間需要依賴的一系列組件或者工具;把這些工具和組件打包在一起提供給程序員,程序員就能運(yùn)行自己編寫的代碼了。

對(duì)于 JavaScript 來說,它在運(yùn)行期間需要依賴以下組件:

1) 解釋器

JavaScript 是一種腳本語言,需要一邊解釋一邊運(yùn)行,用到哪些源代碼就編譯哪些源代碼,整個(gè)過程由解釋器完成。沒有解釋器的話,JavaScript 只是一堆純文本文件,不能被計(jì)算機(jī)識(shí)別。

2) 標(biāo)準(zhǔn)庫

我們?cè)?JavaScript 代碼中會(huì)調(diào)用一些內(nèi)置函數(shù),這些函數(shù)不是我們自己編寫的,而是標(biāo)準(zhǔn)庫自帶的。

3) 本地模塊

所謂本地模塊,就是已經(jīng)被提前編譯好的模塊,它們是二進(jìn)制文件,和可執(zhí)行文件在內(nèi)部結(jié)構(gòu)上沒有什么區(qū)別,只是不能單獨(dú)運(yùn)行而已。這些本地模塊其實(shí)就是動(dòng)態(tài)鏈接庫(在 Windows 下是 .dll 文件),如果你使用過C語言、C++ 等編譯型語言,那你應(yīng)該能夠更好地理解它。

JavaScript 的很多功能都需要本地模塊的支持,比如:

  • Cookie 用于存儲(chǔ)少量的用戶數(shù)據(jù),它是用戶計(jì)算機(jī)上的一種小文件,使用 Cookie 必須有文件操作模塊的支持。

  • Ajax 可以借助互聯(lián)網(wǎng)從服務(wù)器請(qǐng)求數(shù)據(jù),這是一種網(wǎng)絡(luò)操作,必須有網(wǎng)絡(luò)庫的支持。

  • 一步一步跟蹤代碼的執(zhí)行流程,從中發(fā)現(xiàn)邏輯錯(cuò)誤,這個(gè)過程叫做調(diào)試,需要有調(diào)試器(Debugger)的支持。

  • JavaScript 可以操作 HTML,這需要 HTML 解析模塊提前構(gòu)建起 DOM 樹。

本地模塊一般封裝了通用功能,對(duì)性能要求較高,所以通常使用編譯型語言來實(shí)現(xiàn),比如C語言、C++、匯編語言等。

JavaScript 解釋器需要本地模塊的支持,標(biāo)準(zhǔn)庫在編寫時(shí)也會(huì)調(diào)用本地模塊的接口,而我們編寫的 JavaScript 代碼一般不會(huì)直接使用本地模塊,所以 Web 前端程序員觸及不到它們。

本地模塊是幕后英雄,它不顯山露水,但是又不可或缺。

總結(jié)

解釋器、標(biāo)準(zhǔn)庫、本地模塊等各種組件/工具共同支撐了 JavaScript 代碼的運(yùn)行,它們統(tǒng)稱為 JavaScript 運(yùn)行時(shí)。

在 Node.js 之前,JavaScript 運(yùn)行時(shí)被綁定在瀏覽器中,作為瀏覽器的各種模塊出現(xiàn)。這意味著,要想運(yùn)行 JavaScript 代碼就必須啟動(dòng)瀏覽器,JavaScript 逃不出瀏覽器的手掌心,它的功能受到很大的限制,只能作為網(wǎng)頁腳本使用。

Node.js 的組成

Node.js 運(yùn)行時(shí)主要由 V8 引擎、標(biāo)準(zhǔn)庫和本地模塊組成,尤其是本地模塊的多少,從底層決定了 Node.js 功能的強(qiáng)弱。

1) V8 引擎

V8 引擎就是 JavaScript 解釋器,它負(fù)責(zé)解析和執(zhí)行 JavaScript 代碼。

V8 引擎借鑒了 Java 虛擬機(jī)和 C++ 編譯器的眾多技術(shù),它將 JavaScript 代碼直接編譯成原生機(jī)器碼,并且使用了緩存機(jī)制來提高性能,這使得 JavaScript 的運(yùn)行速度可以媲美二進(jìn)制程序。

2) 本地模塊

Node.js 集成了眾多高性能的開源庫,它們使用 C/C++ 語言實(shí)現(xiàn),比如:

              模塊              說明
              libuv              一個(gè)跨平臺(tái)的、基于事件驅(qū)動(dòng)的異步 I/O 庫。但是 libuv 不僅限于 I/O,它還提供了進(jìn)程管理、線程池、信號(hào)處理、定時(shí)器等其它功能。

Linux 中一切皆文件,這里的 I/O 不僅僅包括文件讀寫,還包括數(shù)據(jù)庫讀寫、網(wǎng)絡(luò)通信(socket)等。
              nmp              Node.js 包管理器,可以下載包、安裝包、卸載包、更新包、上傳包等。
              http_parser              一款由C語言編寫的輕量級(jí) HTTP 解析器,用以支持 Web 應(yīng)用開發(fā)。
              zlib              工業(yè)級(jí)的數(shù)據(jù)壓縮/解壓模塊,Nodejs 借助 zlib 來創(chuàng)建同步、異步或者流式的壓縮/解壓接口。
              OpenSSL              該模塊提供了經(jīng)過嚴(yán)密測試的許多加密/解密功能,現(xiàn)代 Web 依賴這些功能來實(shí)現(xiàn)安全性,比如 SSL 協(xié)議和 https 協(xié)議。
              c-ares              異步 DNS 查詢和解析庫。

Node.js 直接在計(jì)算機(jī)上運(yùn)行 JavaScript 代碼,并且要賦予 JavaScript 強(qiáng)大的能力,所以它的本地模塊和瀏覽器中的運(yùn)行時(shí)有很多大區(qū)別,甚至說幾乎沒有什么關(guān)聯(lián)。Node.js 幾乎完全拋棄了瀏覽器,自己從頭構(gòu)建了一套全新的 JavaScript 運(yùn)行時(shí)。

3) 標(biāo)準(zhǔn)庫

本地模塊使用 C/C++ 編寫,而 Node.js 面向 JavaScript 開發(fā)人員,所以必須要封裝本地模塊的 C/C++ 接口,提供一套優(yōu)雅的 JavaScript 接口給開發(fā)人員,并且要保持接口在不同平臺(tái)(操作系統(tǒng))上的一致性。

這套 JavaScript 接口,就是 Node.js 標(biāo)準(zhǔn)庫。標(biāo)準(zhǔn)庫是否優(yōu)雅和強(qiáng)大,決定了 Node.js 的易用性,直接影響 Node.js 的市場表現(xiàn)。

到此,相信大家對(duì)“Node.js運(yùn)行時(shí)由哪些模塊組成”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

文章題目:Node.js運(yùn)行時(shí)由哪些模塊組成
本文地址:http://muchs.cn/article16/jpidgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計(jì)公司、網(wǎng)站設(shè)計(jì)商城網(wǎng)站、搜索引擎優(yōu)化、網(wǎng)站維護(hù)微信小程序

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營