node js主要功能是編寫(xiě)像Web服務(wù)器一樣的網(wǎng)絡(luò)應(yīng)用,并且由于Node.js是事件驅(qū)動(dòng)的,所以開(kāi)發(fā)者可以在不使用線程的情況下開(kāi)發(fā)出一個(gè)能夠承載高并發(fā)的服務(wù)器。
創(chuàng)新互聯(lián)建站長(zhǎng)期為上千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為榮成企業(yè)提供專(zhuān)業(yè)的網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站,榮成網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。
本文操作環(huán)境:Windows7系統(tǒng),nodejs10.16.2版,Dell G3電腦。
node js主要功能是什么?
Node.js 是能夠在服務(wù)器端運(yùn)行 JavaScript 的開(kāi)放源代碼、跨平臺(tái)執(zhí)行環(huán)境。Node.js 由 OpenJS Foundation (原為 Node.js Foundation,已與 JS Foundation 合并)持有和維護(hù),亦為 Linux 基金會(huì)的項(xiàng)目。Node.js 采用 Google 開(kāi)發(fā)的 V8 執(zhí)行代碼,使用事件驅(qū)動(dòng)、非阻塞和異步輸入輸出模型等技術(shù)來(lái)提高性能,可優(yōu)化應(yīng)用程序的傳輸量和規(guī)模。這些技術(shù)通常用于資料密集的即時(shí)應(yīng)用程序。
Node.js 大部分基本模塊都用 JavaScript 語(yǔ)言編寫(xiě)。在 Node.js 出現(xiàn)之前,JavaScript 通常作為客戶端程序設(shè)計(jì)語(yǔ)言使用,以JavaScript 寫(xiě)出的程序常在用戶的瀏覽器上執(zhí)行。Node.js 的出現(xiàn)使 JavaScript 也能用于服務(wù)端編程。Node.js 含有一系列內(nèi)置模塊,使得程序可以脫離 Apache HTTP Server 或 IIS,作為獨(dú)立服務(wù)器執(zhí)行。
目前,Node.js 已被IBM、Microsoft、Yahoo![10]、Walmart、Groupon、SAP、LinkedIn、Rakuten、PayPal、Voxer、GoDaddy等企業(yè)采用。
概覽
Node.js可透過(guò)JavaScript和一系列模塊來(lái)編寫(xiě)服務(wù)器端應(yīng)用和網(wǎng)絡(luò)相關(guān)的應(yīng)用。[20][21][22]核心模塊包括文件系統(tǒng)I/O、網(wǎng)絡(luò)(HTTP、TCP、UDP、DNS、TLS/SSL等)、二進(jìn)制數(shù)據(jù)流、加密算法、數(shù)據(jù)流等等。[21][23]Node模塊的API形式簡(jiǎn)單,降低了編程的復(fù)雜度。
使用框架可以加速開(kāi)發(fā)。常用的框架有Express.js、Socket.IO和Connect等。[24]Node.js的程序可以在Microsoft Windows、Linux、Unix、Mac OS X等服務(wù)器上運(yùn)行。Node.js也可以使用CoffeeScript(一種旨在簡(jiǎn)化JavaScript的替代語(yǔ)言,其代碼可按照一定規(guī)則轉(zhuǎn)化為合法的JavaScript代碼)、TypeScript(微軟開(kāi)發(fā)的強(qiáng)化了數(shù)據(jù)類(lèi)型的JavaScript變體)、Dart語(yǔ)言,以及其他能夠編譯成JavaScript的語(yǔ)言編程。
Node.js主要用于編寫(xiě)像Web服務(wù)器一樣的網(wǎng)絡(luò)應(yīng)用,這和PHP和Python是類(lèi)似的。但是Node.js與其他語(yǔ)言的不同之處在于,PHP等語(yǔ)言是阻塞的(只有前一條命令執(zhí)行完畢才會(huì)執(zhí)行后面的命令),而Node.js是非阻塞的(多條命令可以同時(shí)被運(yùn)行,通過(guò)回調(diào)函數(shù)得知命令已結(jié)束運(yùn)行)。
Node.js是事件驅(qū)動(dòng)的。開(kāi)發(fā)者可以在不使用線程的情況下開(kāi)發(fā)出一個(gè)能夠承載高并發(fā)的服務(wù)器。其他服務(wù)器端語(yǔ)言難以開(kāi)發(fā)高并發(fā)應(yīng)用,而且即使開(kāi)發(fā)出來(lái),性能也不盡如人意。Node.js正是在這個(gè)前提下被創(chuàng)造出來(lái)。Node.js把JavaScript的易學(xué)易用和Unix網(wǎng)絡(luò)編程的強(qiáng)大結(jié)合起來(lái)。
Node.js使用Google V8 JavaScript引擎,因?yàn)椋?/p>
V8是基于BSD許可證的開(kāi)源軟件
V8速度非常快
V8專(zhuān)注于網(wǎng)絡(luò)功能,在HTTP、DNS、TCP等方面更加成熟
Node.js已經(jīng)有數(shù)十萬(wàn)模塊,它們可以透過(guò)一個(gè)名為npm的管理器免費(fèi)下載。Node.js開(kāi)發(fā)社區(qū)主要有兩個(gè)郵件列表、一個(gè)在freenode的名為#node.js的IRC頻道。社區(qū)集中在NodeConf。
推薦學(xué)習(xí):《nodejs視頻教程》