欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Node模塊的使用方法-創(chuàng)新互聯(lián)

這篇文章主要講解了Node模塊的使用方法,內(nèi)容清晰明了,對此有興趣的小伙伴可以學(xué)習(xí)一下,相信大家閱讀完之后會有幫助。

創(chuàng)新互聯(lián)專業(yè)網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計,集網(wǎng)站策劃、網(wǎng)站設(shè)計、網(wǎng)站制作于一體,網(wǎng)站seo、網(wǎng)站優(yōu)化、網(wǎng)站營銷、軟文營銷等專業(yè)人才根據(jù)搜索規(guī)律編程設(shè)計,讓網(wǎng)站在運行后,在搜索中有好的表現(xiàn),專業(yè)設(shè)計制作為您帶來效益的網(wǎng)站!讓網(wǎng)站建設(shè)為您創(chuàng)造效益。

簡介

V8引擎本身就是用于Chrome瀏覽器的JS解釋部分,但是Ryan Dahl,把V8搬到服務(wù)器,用于做服務(wù)器的軟件。
Node是一個專注于實現(xiàn)高性能Web服務(wù)器優(yōu)化的專家,在遇到V8而誕生的項目

  • 沒有歷史包袱,沒有同步I/O。不會出現(xiàn)一個同步I/O導(dǎo)致事件循環(huán)性能急劇降低的情況。
  • V8性能足夠好,遠(yuǎn)遠(yuǎn)比Python,Ruby等其它腳本語言的引擎快。
  • JavaScript語言的閉包特性非常方便,比C中的回調(diào)函數(shù)好用。

Node可以讓JavaScript運行在服務(wù)器端的平臺開發(fā),它讓JavaScript的觸角延伸到了服務(wù)器端,可以與PHP,JSP,Python,Ruby等語言實現(xiàn)后端開發(fā)。

但Node似乎有點不同:

  • Node不是一種獨立的語言,與PHP,JSP,Python,Perl,Ruby的“即使語言,也是平臺”不同,Node使用的是JavaScript進行編程,運行在JavaScript引擎上(V8)
  • 與PHP,JSP等相比(PHP,JSP,.net都需要運行在服務(wù)器程序上,Apache,Naginx,Tomcat,IIS),Node跳過了Apcahe,Naginx,IIS等HTTP服務(wù)器,它自己不用建設(shè)在任何服務(wù)器任何之上。Node的設(shè)計理念與經(jīng)典架構(gòu)(LAMP = Linux + Apache + MySQL + PHP) 有著很大的不同,可以提供強大的伸縮能力。
  • Node沒有Web容器。
  • Node是花最小的硬件成本,追求更高的并發(fā),更高的處理性能。

Node特點

所謂特點,就是Node如果解決服務(wù)器高性能瓶頸問題。
JavaScript有什么特點的時候,會立即想到 單線程事件驅(qū)動面向?qū)ο?/code>。但是JavaScript精髓 覺得是 this閉包作用域鏈函數(shù)。才使得這門語言魅力無窮。

單線程

在Java,PHP,或者.net 等服務(wù)器端語言中,會為每一個用戶端連接創(chuàng)建一個新的線程。而每個線程需要耗費大約2MB內(nèi)存。理論上,一個8GB內(nèi)存的服務(wù)器可以同時連接的大用戶數(shù)4000個左右。要讓W(xué)eb應(yīng)用程序支持更多的用戶,就需要增加服務(wù)器的數(shù)量,而Web應(yīng)用程序的硬件成本就上升了。
Node不為每個用戶連接創(chuàng)建一個新的線程,而僅僅使用一個線程。當(dāng)有用戶連接了,就觸發(fā)一個內(nèi)部事件,并通過非阻塞I/O,事件驅(qū)動機制,讓Node程序宏觀上也是并行的。Node中,一個8GB內(nèi)存的服務(wù)器,可以同時處理超過4萬用戶的連接。
單線程好處:操作系統(tǒng)完全不再有線程創(chuàng)建,銷毀的時間開銷。
單線程壞處:就是一個用戶造成了線程的奔潰,整個服務(wù)都奔潰了,其它人的服務(wù)也就奔潰了。

Node模塊的使用方法

Node模塊的使用方法

單線程也能夠造成宏觀上的“并發(fā)”。

非阻塞I/O

非阻塞I/O non-blocking I/O

例子:訪問數(shù)據(jù)庫取得數(shù)據(jù)的時候,需要一段時間。
在傳統(tǒng)的單線程處理機制中,在執(zhí)行了訪問數(shù)據(jù)庫代碼之后,整個線程都將暫停下來,等待數(shù)據(jù)庫返回結(jié)果,才能執(zhí)行后面的代碼。也就是說I/O阻塞了代碼的執(zhí)行,極大降低了程序執(zhí)行的效率

Node采用了非阻塞型I/O機制,因此在執(zhí)行了訪問數(shù)據(jù)庫的代碼之后,將立即轉(zhuǎn)而執(zhí)行后面的代碼,把數(shù)據(jù)庫返回的結(jié)果的處理代碼放在回調(diào)函數(shù)中,從而提高了程序的執(zhí)行效率。
當(dāng)某個I/O執(zhí)行完畢時,將以時間的形式通知執(zhí)行I/O操作的線程,線程執(zhí)行了這個事件的回調(diào)函數(shù)。為了處理異步I/O,線程必須有事件循環(huán),不斷的檢查是否有未處理的時間。依次予以處理。
阻塞模式下,一個線程只能處理一項任務(wù),要想提高吞吐量必須通過多線程。而非阻塞模式下,一個線程永遠(yuǎn)在執(zhí)行計算操作,這個線程的CPU核心利用率永遠(yuǎn)是100%。 有一種類似 : 與其多人工作,但是好多人閑著,倒不如一個人工作,往死里干活。

Node模塊的使用方法

事件驅(qū)動
事件驅(qū)動 event-driven

在Node中,客戶端請求建立連接,提交數(shù)據(jù)等行為,會觸發(fā)相應(yīng)的時間。在Node中,在一個ie時時刻,只能執(zhí)行一個事件回調(diào)函數(shù),但是在執(zhí)行一個事件回調(diào)函數(shù)的中途,可以轉(zhuǎn)而處理其它事件(比如:有新用戶連接),然后返回繼續(xù)執(zhí)行原事件的回調(diào)函數(shù)。這種處理機制,稱為:"事件環(huán)"機制。

Node底層是C++(V8也是C++) 編寫。底層代碼中,近半數(shù)都用戶事件隊列,回調(diào)函數(shù)隊列的構(gòu)建。用事件驅(qū)動來完成服務(wù)器的任務(wù)調(diào)度。用一個線程,擔(dān)負(fù)起了處理非常多的任務(wù)。

Node模塊的使用方法

單線程,減少內(nèi)存開銷,操作系統(tǒng)的內(nèi)存換頁。
如某一個任務(wù),執(zhí)行了,但是被I/O阻塞了,所以這個縣城就阻塞了。非阻塞I/O,不會傻等I/O語句結(jié)束,而會執(zhí)行后面的語句。利用事件驅(qū)動,不管是新用戶的請求,還是老用戶的I/O完成,都將以事件方式加入事件環(huán)中,等待調(diào)度。

Node所有的I/O都是異步的,回調(diào)函數(shù)嵌套回調(diào)函數(shù)。

Node是單進程單線程應(yīng)用程序,但是通過事件和回調(diào)支持并發(fā),所以性能非常高。
Node的每個API都是異步的,并作為一個獨立線程運行,使用異步函數(shù)調(diào)用,并處理并發(fā)。
Node基本上所有的事件機制都是用設(shè)計模式中的觀察者模式實現(xiàn)的。
Node單線程類似進入一個while(true)的事件循環(huán),直到?jīng)]有事件觀察者退出,每個異步事件都生成一個事件觀察者,如果有事件發(fā)生就調(diào)用該回調(diào)函數(shù)。

模塊

moduel

Node中,以模塊為單位劃分所有功能,并且提供一個完整的模塊加載機制,可以將應(yīng)用程序話費為各個不同的部分。

Node中,一個JavaScript文件中定義的變量,函數(shù),都只在這個文件內(nèi)部有效果。

俠義的說,每一個JavaScript文件都是一個模塊,而多個JavaScript文件之間可以相互require,共同實現(xiàn)一個功能,整體外對,又稱之為廣義上的模塊

好處:

  • 減少重復(fù)代碼量,增加可讀性。
  • 方便進行代碼規(guī)劃。
  • 方面使用第三方模塊。

當(dāng)需要從JS文件外部引用到這些變量,函數(shù)時,必須使用exprots對象,或者module.exprots進行暴露。使用者需要使用require(); 函數(shù)引入這個JS文件。

function People( name,sex,age ){
  this.name = name;
  this.sex = sex;
  this.age = age;
}

People.prototype = {
  sayHello: function(){
    console.log(this.name+this.sex+this.age);
  }
};

// 暴露
module.exports = People;

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前題目:Node模塊的使用方法-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://www.chinadenli.net/article10/djdego.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司服務(wù)器托管網(wǎng)站設(shè)計外貿(mào)網(wǎng)站建設(shè)云服務(wù)器網(wǎng)站導(dǎo)航

廣告

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