nodejs從0到1(Node簡介+模組機制)

來源:互聯網
上載者:User

標籤:有趣   載入   標準   全域變數   包管理   ports   編寫   mon   code   

1.nodejs簡介:

1.Node不是js應用,而是js運行平台。用戶端js通過瀏覽器和v8引擎聯絡到了一起,伺服器端js用Node和v8又牽起了小手,所以說Node是運行平台,類似於用戶端的瀏覽器。Node採用c++語言編寫,v8引擎也是c++寫的。Node為神馬用c++寫呢?這是個有趣的故事,詳見《深入淺出Nodejs》.

2.模組機制:

說模組機制之前,先說下CommonJS.CommonJS是一種規範。原來js規範比較薄弱,不利於js大規模應用:主要有以下的缺陷:

2.1:js沒有模組系統,沒有原生的支援密閉範圍或依賴管理。

2.2:js沒有標準庫,除了核心庫以外,沒有檔案系統的API,沒有IO流API.

2.3:js沒有標準介面,沒有web server 或者資料庫的統一介面。

2.4:js沒有包管理系統,不能自動載入和安裝依賴。

於是乎就有了CommonJS規範,就是為瞭解決以上問題,Node.js就是這種規範的實現。Node自身實現了require方法作為其引入模組的方法,同時NPM也是基於這種規範。

3.模組的簡單定義及應用:

寫一個circle.js

1 var PI=Math.PI;2 exports.area=function(r){3     return PI*r*r;4 }5 exports.zhouchang=function(r){6     return 2*PI*r;7 }

寫一個testCircle.js

1 var circle=require("./circle");2 console.log("erea:"+circle.area(1)+"zhouhcang:"+circle.zhouchang(1));

執行結果:

require是匯入;exports是匯出,內部方法原理是由node自身實現的,在es6之前node匯入匯出用這兩個實現,es6出現後,export;import成為主流。

ES6發布的module並沒有直接採用CommonJS,甚至連require都沒有採用,也就是說require仍然只是node的一個私人的全域方法,module.exports也只是node私人的一個全域變數屬性。

 

nodejs從0到1(Node簡介+模組機制)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.