1. 程式人生 > >【Node全域性變數global模組】

【Node全域性變數global模組】

環境:Node v8.2.1; Npm v5.3.0; OS Windows10

在瀏覽器中我們有window物件用於掛載全域性的變數,在Node中我們有global物件可以進行掛載,很多共用的屬性就可以掛載到global物件上了,本身它自己也擁有很多的屬性。

1、API結構圖

這裡寫圖片描述

2、一些例子

下面是部分API的例子,對部分API的一個簡單程式碼實現

2.1 global

全域性名稱空間,通過 global 定義的變數,在任何地方都可以使用,類似於瀏覽器端定義在全域性範圍中的變數。

// foo.js
global.foo = 'hello';
// bar.js
require('./foo'); console.log(foo); //hello

定義在 global 上面的變數,不需要在模組中通過 exports 輸出,其他模組中也能使用。

2.2 __dirname

dirname 實際上不是一個全域性變數,在命令列模式下直接呼叫會提示dirname 未定義,但是在模組中可以直接使用,返回當前指令碼執行的目錄。

console.log(__dirname);

2.3__filename

返回當前執行程式碼檔案的名稱(包含檔案的絕對路徑)。和dirname 一樣,filename 也不是一個全域性變數,但在模組中可以直接使用。

console.log(__filename);

__filename返回的是包含路徑的檔名。