1. 程式人生 > 其它 >Node使用CommonJS規範

Node使用CommonJS規範

Node使用CommonJS規範
1.模組引用
1. require
- require():通過此函式來引入外部的模組
- 傳遞一個檔案的路徑作為引數,node將會自動根據該路徑來引入外部模組
- 這裡的路徑如果使用相對路徑,必須以 . 或 .. 開頭
require("./02.module.js")

2. 使用require()引入模組以後,該函式會返回一個物件,這個物件代表的是引入的模組
var md = require('./02.module.js')
console.log(md.x)

2.模組定義
1. 在Node中,一個js檔案就是一個模組
每一個js檔案中的程式碼都是獨立執行在一個函式中的(區域性變數),所以一個模組中的變數和函式在其他模組中無法訪問
相當於預設有一個匿名函式自呼叫

2. exports
- 通過向外暴露屬性和方法來讓其他人呼叫:將變數或方法設定為 exports 的屬性
exports.x = 10
exports.y = 'str'
exports.fn = function(){}

3.模組標識
1.使用require()引入模組時,使用的就是模組標識,可以通過模組標識來找到指定的模組
2.模組分成兩大類:
核心模組:
- 由node引擎提供的模組
- 核心模組的標識就是模組的名字
fs
檔案模組:
- 由使用者自己建立的模組
- 檔案模組的標識就是檔案的路徑(絕對路徑 / 相對路徑)
相對路徑使用 . 或 .. 開頭

Node.js中的全域性是global,它的作用和網頁中的window類似
- 在全域性中建立的變數都會作為global的屬性儲存
- 在全域性中建立的方法都會作為global的方法儲存
- console.log(arguments.callee+"") 列印global全域性
arguments.callee: 這個屬性儲存的是當前執行的函式物件

function (exports, require, module, __filename, __dirname) {

}
- 實際上模組中的程式碼都是包裝在一個函式中執行的,並且在函式執行時,同時傳遞進了5個實參
exports:將變數或函式暴露到外部
require:函式,用來引入外部的模組
module:代表的是當前模組本身
- 實際上exports就是module的屬性
- exports === module.exports
__filename:當前模組的完整路徑
__dirname:當前模組所在資料夾的完整路徑