最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node模塊機(jī)制與異步處理詳解

 更新時(shí)間:2016年03月13日 13:30:12   投稿:hebedich  
這篇文章主要介紹了node模塊機(jī)制與異步處理詳解的相關(guān)資料,需要的朋友可以參考下

1.模塊機(jī)制

commonJS模塊機(jī)制出現(xiàn)的目的是為了構(gòu)建js在web服務(wù)器,桌面程序,瀏覽器等方面形成生態(tài)系統(tǒng)。而node js就是這種規(guī)范的一種實(shí)現(xiàn),用requird來引入其他文件,同樣,npm也遵循了commonJS定義的包規(guī)范,從而形成了一套完整的生態(tài)系統(tǒng)。

模塊定義并導(dǎo)出

例如有如下一個(gè)名為circle.js的文件

exports.getName = function(name) {
  return name
}

模塊載入

var circle = require('/circle.js')
console.log(circle.getName('WPY'))

模塊加載策略

node模塊主要可以分為兩類:

原生模塊和自定義模塊,所謂原生模塊就是node自己定義的模塊,例如HTTP,fs模塊,此類模塊加載速度最快。
還有一類是自定義模塊,包括包模塊,和我們自己定義的文件。無論是原生模塊還是自定義模塊在第一次加載后都會(huì)被node緩存,所以第二次請(qǐng)求時(shí)是不會(huì)有開銷的。

原生模塊加載:

require()方法在解析文件名之后,最優(yōu)先在模塊緩存中查找,然后在node的原生模塊中查找
從文件加載
module.path 對(duì)于每一個(gè)被加載的文件模塊,在創(chuàng)建這個(gè)模塊對(duì)象的時(shí)候都會(huì)有一個(gè)paths屬性。其路徑指向引入模塊的路徑。
在請(qǐng)求絕對(duì)路徑模塊時(shí),不會(huì)去遍歷node_module加載速度最快。

異步編程

高介函數(shù)
高介函數(shù)是將函數(shù)作為參數(shù),或者作為返回值的函數(shù)。

function foo(X) {
  return function() {
    return x
  }
}

NODE帶來的最大特性莫過于機(jī)遇事件驅(qū)動(dòng)的非阻塞IO。

異步編程解決方案

1.事件發(fā)布/訂閱模式

事件監(jiān)聽器模式是廣泛應(yīng)用于異步編程,是回調(diào)函數(shù)的時(shí)間化,又稱發(fā)布/訂閱模式。

//訂閱

emitter.on("event1", function(message){
  console.log(message)
})
//發(fā)布

emitter.emit("event1", "I am message")

2.Promise模式

promise對(duì)象具有三種狀態(tài),未完成態(tài),完成態(tài),失敗態(tài)。
promise對(duì)象要具有then方法,對(duì)于then 方法有以下幾點(diǎn)要求

1.接受完成態(tài),錯(cuò)誤態(tài)的回調(diào)方法。
2.只接受function,其余對(duì)象將被忽略
3.繼續(xù)返回promise對(duì)象,以實(shí)現(xiàn)鏈?zhǔn)秸{(diào)用

相關(guān)文章

  • node.js通過axios實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求的方法

    node.js通過axios實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求的方法

    下面小編就為大家分享一篇node.js通過axios實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • 在Linux系統(tǒng)中搭建Node.js開發(fā)環(huán)境的簡單步驟講解

    在Linux系統(tǒng)中搭建Node.js開發(fā)環(huán)境的簡單步驟講解

    這篇文章主要介紹了在Linux系統(tǒng)中搭建Node.js開發(fā)環(huán)境的步驟,Node使得JavaScript程序可以在本地操作系統(tǒng)環(huán)境中解釋運(yùn)行,需要的朋友可以參考下
    2016-01-01
  • node.js中的buffer.write方法使用說明

    node.js中的buffer.write方法使用說明

    這篇文章主要介紹了node.js中的buffer.write方法使用說明,本文介紹了buffer.write的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • express的中間件bodyParser詳解

    express的中間件bodyParser詳解

    這篇文章主要介紹了node.js中express的中間件bodyParser的使用方法,需要的朋友可以參考下
    2014-12-12
  • mongoose更新對(duì)象的兩種方法示例比較

    mongoose更新對(duì)象的兩種方法示例比較

    最近在使用mongoose的時(shí)候發(fā)現(xiàn)了一個(gè)之前一直沒注意的知識(shí)點(diǎn),下面這篇文章主要給大家介紹了關(guān)于mongoose更新對(duì)象的兩種方法,通過示例代碼將兩種方法進(jìn)行詳細(xì)的對(duì)比,以給大家更好的參考學(xué)習(xí),需要的朋友可以參考下。
    2017-12-12
  • 使用Node操作文件夾的常用API

    使用Node操作文件夾的常用API

    這篇文章我們將學(xué)習(xí)Node對(duì)文件夾的操作,當(dāng)我們學(xué)習(xí)完文件夾的操作后結(jié)合文件的操作我們就可以真正的通過Node在日常的工作生活中解決許多和文件相關(guān)的問題,這篇文章我們將首先講解文件夾操作的幾個(gè)API,然后完成一下最常見的文件夾遞歸的操作,需要的朋友可以參考下
    2024-08-08
  • Node.js基礎(chǔ)入門之緩存區(qū)與文件操作詳解

    Node.js基礎(chǔ)入門之緩存區(qū)與文件操作詳解

    Node.js是一個(gè)基于Chrome?V8引擎的JavaScript運(yùn)行時(shí)。類似于Java中的JRE,.Net中的CLR。本文將詳細(xì)為大家介紹Node.js中的緩存區(qū)與文件操作,感興趣的可以了解一下
    2022-03-03
  • Node.js深入分析Koa源碼

    Node.js深入分析Koa源碼

    本文主要從源碼的角度來講述 Koa,尤其是其中間件系統(tǒng)是如何實(shí)現(xiàn)的。跟 Express 相比,Koa 的源碼異常簡潔,Express 因?yàn)榘崖酚上嚓P(guān)的代碼嵌入到了主要邏輯中,因此讀 Express 的源碼可能長時(shí)間不得要領(lǐng),而直接讀 Koa 的源碼幾乎沒有什么障礙
    2022-08-08
  • node-sass是干什么用的

    node-sass是干什么用的

    node-sass是一個(gè)項(xiàng)目依賴,在一個(gè)項(xiàng)目中在使用sass語法的時(shí)候,必須通過sass-loader來解析sass,從而使sass語法變成瀏覽器能夠識(shí)別的CSS語法,下面介紹node-sass是什么,一起看看吧
    2023-08-08
  • express中間件加載機(jī)制示例詳解

    express中間件加載機(jī)制示例詳解

    中間件是一種方法,可以接收客戶端發(fā)來的請(qǐng)求,可以對(duì)請(qǐng)求做出響應(yīng),也可以將請(qǐng)求繼續(xù)交給下一個(gè)中間件繼續(xù)處理,下面這篇文章主要給大家介紹了關(guān)于express中間件加載機(jī)制的相關(guān)資料,需要的朋友可以參考下
    2022-08-08

最新評(píng)論

纳雍县| 伊宁县| 江都市| 海口市| 周宁县| 比如县| 南康市| 兴安县| 江山市| 平定县| 临清市| 读书| 运城市| 陆河县| 通许县| 海安县| 丹寨县| 工布江达县| 南郑县| 南郑县| 昌图县| 家居| 土默特左旗| 金溪县| 五大连池市| 双牌县| 吴江市| 莫力| 腾冲县| 鄂托克前旗| 鲜城| 武平县| 丹寨县| 永登县| 深州市| 济南市| 怀来县| 汤阴县| 公主岭市| 遵化市| 永修县|