node模組機制與非同步處理詳解,node模組非同步詳解

來源:互聯網
上載者:User

node模組機制與非同步處理詳解,node模組非同步詳解

1.模組機制

commonJS模組機制出現的目的是為了構建js在web伺服器,傳統型程式,瀏覽器等方面形成生態系統。而node js就是這種規範的一種實現,用requird來引入其他檔案,同樣,npm也遵循了commonJS定義的包規範,從而形成了一套完整的生態系統。

模組定義並匯出

例如有如下一個名為circle.js的檔案

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

模組載入

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

模組載入策略

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

原生模組和自訂模組,所謂原生模組就是node自己定義的模組,例如HTTP,fs模組,此類別模組載入速度最快。
還有一類是自訂模組,包括包模組,和我們自己定義的檔案。無論是原生模組還是自訂模組在第一次載入後都會被node緩衝,所以第二次請求時是不會有開銷的。

原生模組載入:

require()方法在解析檔案名稱之後,最優先在模組緩衝中尋找,然後在node的原生模組中尋找
從檔案載入
module.path 對於每一個被載入的檔案模組,在建立這個模組對象的時候都會有一個paths屬性。其路徑指向引入模組的路徑。
在請求絕對路徑模組時,不會去遍曆node_module載入速度最快。

非同步編程

高介函數
高介函數是將函數作為參數,或者作為傳回值的函數。

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

NODE帶來的最大特性莫過於機遇事件驅動的非阻塞IO。

非同步編程解決方案

1.事件發布/訂閱模式

事件監聽器模式是廣泛應用於非同步編程,是回呼函數的時間化,又稱發布/訂閱模式。

//訂閱emitter.on("event1", function(message){  console.log(message)})//發布emitter.emit("event1", "I am message")

2.Promise模式

promise對象具有三種狀態,未完成態,完成態,失敗態。
promise對象要具有then方法,對於then 方法有以下幾點要求

1.接受完成態,錯誤態的回調方法。
2.只接受function,其餘對象將被忽略
3.繼續返回promise對象,以實現鏈式調用

您可能感興趣的文章:
  • Nodejs非同步回調的優雅處理方法
  • Nodejs極簡入門教程(一):模組機制
  • 深入淺析NodeJs並發非同步回調處理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.