node.js概述
node.js介紹
相關網址:
Node.js 是一個開源與跨平臺的JavaScript執行時環境。它是在瀏覽器外執行,它是一個事件驅動非同步I/O單程序的服務端JS環境,基於Google的V8引擎,V8引擎執行Javascript的速度非常快,效能非常好。它使用新的 ECMAScript標準,不必等待所有使用者更新其瀏覽器,可以通過更改其版本來決定要使用新的標準特性。
注意:
瀏覽器是JS的前端執行環境。
Node.js是JS的後端執行環境,在後端中執行無法呼叫 DOM 和 BOM 等瀏覽器內建 API。
nodejs呼叫服務檢視伺服器相關api gulp基礎node環境
node應用場景
建立應用服務
web開發(後端)
介面開發(小程式)
客戶端應用工具gulp、webpack、vue腳手架、react腳手架、小程式
模組化
NodeJs基於Commonjs模組化開發的規範,它定義一個JS檔案就稱之為一個模組
commonJS 使用 exports 匯出模組, require 匯入模組。
只有將變數匯出之後,其他檔案才能能夠使用。
1 //將模組進行匯入 2 module.exports.time = time
具體規範如下:
1、如果 js 檔案中存在 exports 或 require,該 js 檔案 是一個模組。
2、模組內的所有程式碼均為 隱藏程式碼,包括 全域性變數、全域性函式,這些全域性的內容 均不應該對全域性變數造成汙染。
3、如果一個模組需要暴露一些API給外部使用,需要通過exports 匯出,exports 是一個空物件,你可以為該物件新增任何需要匯出的內容。
4、如果一個模組需要匯入其他模組,通過require 實現,require 是一個函式,傳入模組的路徑即可返回該模組匯出的整個內容。
nodejs對commonJS的實現
為了實現CommonJS 規範, nodejs 對模組 做出了以下處理
1、為了保證高效的執行,進行載入必要的模組。nodejs 執行到require 函式時才會載入並執行。
2、為了隱藏模組中的程式碼,nodejs 執行模組時,會將模組中的所有放到一個函式中執行,以保證不汙染全域性變數。
3、為了保證順利的匯出模組內容,nodejs 做了以下處理:
1. 在模組開始執行前,初始化一個值 module.exports = {}
2.module.exports是模組匯出之一
3.為了方便開發者便捷的匯出,nodejs 在初始化 完成module.exports後,有聲明瞭一個變數exports = module.exports
4.為了避免反覆載入同一個模組,nodejs 預設開啟了模組快取功能,如果已經載入過的模組,則會自動使用之前的匯出結果。
nodejs的模組型別
- 核心(內建)模組 - 安裝nodejs自帶的模組
- 第三方模組 - 需要手動通過(npm/yarn)來進行安裝
- 自定義模組 - 開發者自己編寫開發
modelue.exports/export //匯出 require(模組名稱) //匯入
nodejs的安裝
nodejs環境安裝非常便捷,直接可通過官網地址,下載對應的安裝軟體包即可安裝使用。
如果在工作中有多個node環境的切換,可以安裝ndoe環境管理工具NVM:https://github.com/coreybutler/nvm-windows/releases
nvm可以讓你的電腦中有N多個node版本。