nodejs---基礎一Node.js的基本特點,和關於module.exports和exports
阿新 • • 發佈:2018-12-17
nodejs—主要解決高併發問題 Node.js
- 是一個基於 Chrome V8 引擎的 JavaScript 執行環境。
- 適用於開發高併發,沒有複雜業務邏輯的應用
解決問題的關鍵:
- 事件驅動
- 非同步I/O(非阻塞I/O)
- 單執行緒(缺點:一旦阻塞,整個流程都會被阻塞)
關於nodejs的版本號
- 版本號通常分為3個部分:主版本號,次版本號,修訂號
- 版本號遞增的規律: (1)主版本號:當做了不相容API 修改(新增的功能很多 新增的功能不一定提供向後相容即原來寫的程式碼在新版本下不一定可用) (2)次版本號:向下相容功能的新增 (1)修訂號:向下相容問題的解決(原來寫的程式碼還可以用) 3.通常此版本號為偶數的時候為穩定版,奇數的時候為非穩定版
體驗node,直接在命令列輸入程式碼,體驗nodejs
node
在nodejs中沒有window物件,有全域性物件:global物件。 原來瀏覽器中的bom,dom物件在nodejs環境下均不可用 window物件是bom物件,document也不可用 計時器可用:setTimeout 和setTimeinterval依然可用,只是此時計時器是全域性物件global的方法,不再是瀏覽器環境下window的方法。
在使用node編輯單個檔案的時候,當js檔案內容有所修改,需要重新啟動伺服器,響應的內容才會更新 用node執行某個js檔案
node xxx.js
nodejs遵循的是commonJs規範 commonJs的出發點:彌補javascript語言自身的一些不足:
- 無模組化
- 無包管理機制
- 無標準介面
- 標準庫太少 commonJs模組:(引入模組用require(),匯出用module.exports或者exports,這裡require依賴的內容是module.exports所匯出的內容)
- 模組定義,通過module.exports或者exports進行定義
- 一個檔案就是一個模組,擁有獨立的作用域
- 通過module.exports或者exports將模組中的內容暴露出來,供外部使用。在每個模組中,module物件就代表模組本身,exports是module物件的一個屬性,它向外提供介面module.exports和exports的區別應該注意 exports相當於是module.esports的引用 當module.exports與exports匯出的內容均為空的時候,相等成立, 但是隻要有匯出的時候,無論匯出的內容是否相等,只要進行的是分別的賦值,module.exports和exports,都不再相等
4.通常為避免在匯出後,module.exports與exports匯出的內容不一致,所以常常使用這樣的程式碼進行匯出
exports = module.exports = {
//匯出的內容
}
通過這樣的程式碼進行模組的匯出後,exports與module.exports指向同一個物件。