Node.js簡要小總結

      網友投稿 696 2025-03-31

      Node.js簡要小總結

      Node.js簡要小總結

      node是什么?

      node.js模塊系統

      概要

      關鍵知識點梳理

      核心模塊和文件模塊

      模塊間函數和變量無法訪問到的原因

      function(exports,require,module,__filename,__dirname)簡要理解

      exports和module.exports的區別

      為什么會有這樣的差別?

      怎樣理解?

      包和NPM

      什么是包(package)?

      NPM

      node是什么?

      node完整的名字是node.js,顧名思義,以js為后綴名那就多少與javascript有點關系。簡單的說,Node.js是運行在服務端的JavaScript。

      是一個事件驅動I/O服務端JavaScript環境,基于V8引擎執行JS。

      node.js模塊系統

      概要

      node.js提供模塊系統目的是讓node.js的文件可以相互調用

      簡要的說一個node.js文件就是一個模塊(模塊和文件是一一對應的)

      文件不一定就是JavaScript代碼,也可以是JSON文件或者C/C++擴展(編譯過的)

      模塊可以分為核心模塊和文件模塊

      模塊間的變量和函數在其他模塊無法訪問到,每個JS文件代碼都獨立運行在一個函數中

      關鍵知識點梳理

      核心模塊與文件模塊在來源、標識和導入方式上有所區別:

      Node.js簡要小總結

      node.js的每一個模塊都會包裝到一個函數中執行:

      function (exports, require, module, __filename, __dirname){ //編寫的模塊代碼 }

      如上:在test模塊中編寫代碼console.log(arguments.callee +'');,在main.js中引入并執行得到上圖輸出結果,得證被引入模塊的變量和函數無法被訪問到的原因是模塊在執行時會被包裝到一個函數中,相當于引入了一個函數,變量為局部變量,故而不能被訪問到。

      exports:用來將變量或函數暴露到外部

      require:函數,用來引用外部的模塊,引入模塊后會返回一個對象,改對象代表引入得那個模塊

      module:代表當前模塊本身,exports是module的一個屬性

      __filename:當前模塊的完整路徑

      __dirname:當前模塊所在文件夾路徑,(__filename的上一級目錄)

      exports和module.exports都可以將變量暴露到外部,但方法上有所不同:

      exports暴露:方法為:exports.變量名=值;如:exports.num1=10

      module.exports:

      module.exports.變量名=值

      module.exports={變量1=值,變量2=值}

      首先需要理解什么是引用變量,然后最關鍵的一句話是:exports其實是module.exports的一個引用即:

      var exports = module.exports;

      exports 只是一個變量(類似C語言中的指針的概念),在棧中存儲。而module.exports則是對象實體,在堆中存在。簡單說,好比一個倉庫,你要往倉庫里放東西,如果你知道倉庫在哪直接去放就可以,如果不知道在哪,就可以讓exports領著你去倉庫。至于exports為什么不能直接賦予一個對象就顯而易見了——人家只是領著你去倉庫的,你把東西交給他就好比你給他說這個就是新倉庫的地址(如果可以的話),人家領路的本來放的是去倉庫的路線,硬生生的被搞沒了。

      包相當于一個整合的模塊,將一組相關的模塊組合到一起形成一個包。包的組成主要有:

      package.json json格式文件,稱為包描述文件,描述包的相關信息供外部分析,類似說明書的存在。

      bin :目錄,存放可執行二進制文件

      lib :目錄,存放js代碼

      doc:目錄,存放文檔

      test:目錄,存放單元測試文件

      npm:(Node.js package manager)Node.js包管理工具;通俗講類似生活中的應用商店,只不過應用商店的界面和其中的應用都稍微抽象了點。

      cnpm:cnpm是淘寶npm鏡像,主要是解決國內使用npm訪問速度的問題,需要注意cnpm是只讀的,即不可以上傳發布,且對npm的同步頻率為十分鐘一次。

      關于更多npm詳情請訪問官網:

      npm 包管理器簡介:http://nodejs.cn/learn/an-introduction-to-the-npm-package-manager

      JavaScript Node.js

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:如何利用Word2016制作日歷形式值班安排表(用excel制作日歷值班表)
      下一篇:Word2007怎么轉換成表格(如何把word轉換為表格)
      相關文章
      亚洲综合激情五月丁香六月| 亚洲 欧洲 日韩 综合在线| 一本色道久久88—综合亚洲精品 | 亚洲高清毛片一区二区| 久久亚洲精品国产精品婷婷| 亚洲va乱码一区二区三区| 亚洲色av性色在线观无码| 91亚洲导航深夜福利| 亚洲黄网在线观看| 亚洲精品在线网站| 亚洲另类小说图片| 激情五月亚洲色图| 在线综合亚洲欧洲综合网站 | 亚洲综合AV在线在线播放| 国产亚洲精品无码拍拍拍色欲 | 亚洲一级毛片视频| 亚洲人成网国产最新在线| 亚洲男人天堂2022| 亚洲乱色伦图片区小说| 亚洲欧美日韩综合久久久| 亚洲爆乳成av人在线视菜奈实| 亚洲国产AV一区二区三区四区| 久久久亚洲精华液精华液精华液| 亚洲?v无码国产在丝袜线观看 | 亚洲第一区在线观看| 亚洲乱码中文字幕手机在线| 一本色道久久综合亚洲精品| 亚洲乱码中文字幕久久孕妇黑人| 亚洲国产精品无码AAA片| 亚洲国产综合专区电影在线 | 男人的天堂av亚洲一区2区| 国产亚洲蜜芽精品久久| 国产乱辈通伦影片在线播放亚洲 | 亚洲成a人片在线不卡| 亚洲精品乱码久久久久蜜桃| 国产成人亚洲综合a∨| 亚洲天堂免费在线视频| 精品久久久久久亚洲| 久久亚洲AV成人无码电影| 亚洲一级免费毛片| 久久亚洲欧美国产精品|