📜  Node.js 中 process.cwd() 和 __dirname 的区别

📅  最后修改于: 2022-05-13 01:56:41.954000             🧑  作者: Mango

Node.js 中 process.cwd() 和 __dirname 的区别

NodeJS 是构建在 Chrome 的 V8 引擎之上的 JavaScript 运行时。传统的 JavaScript 在浏览器中执行,但使用 Node.js,我们可以在服务器、硬件设备等上执行 JavaScript。

process.cwd():与浏览器上的窗口对象类似,Node.js 有一个名为 global 的全局对象,进程对象位于全局对象内部。此进程对象提供有关当前 Node.js 进程的信息并对其进行控制。它给出了 Node.js 进程的当前工作目录。

__dirname:它是一个局部变量,返回当前模块的目录名。它返回当前 JavaScript 文件的文件夹路径。

Node.js 中 process.cwd() 与 __dirname 的区别如下:

process.cwd()_dirname
It returns the name the of current working directory.It returns the directory name of the directory containing the source code file.
It is the node’s global object.It is local to each module.
It depends on the invoking node command.It depends on the current directory.

示例 1:

index.js
// Logging process.cwd() output
console.log("process.cwd(): ", process.cwd());
  
// Logging __dirname output
console.log("__dirname: ", __dirname);


index.js
// Read and execute the index2.js file 
require('./sub1/index2.js')


index2.js
// Logging process.cwd() output
console.log("process.cwd(): ", process.cwd());
  
// Logging __dirname output
console.log("__dirname: ", __dirname);


跑步 index.js文件使用以下命令:

node index.js

输出:

process.cwd(): C:\src
__dirname: C:\src

在这种情况下,节点进程正在当前目录中运行

示例 2:使用以下文件夹结构创建以下 2 个文件:

src/
___ index.js
___ src2/
    ___index2.js

文件路径:src/index.js

index.js

// Read and execute the index2.js file 
require('./sub1/index2.js')

文件路径:src/src2/index2.js

index2.js

// Logging process.cwd() output
console.log("process.cwd(): ", process.cwd());
  
// Logging __dirname output
console.log("__dirname: ", __dirname);

跑步 index.js文件使用以下命令:

node index2.js

输出:

process cwd:  C:\src
__dirname:  C:\src\src2

这表明当前节点进程正在src/文件夹中运行,即节点index.js并且文件index2.js的目录位于src/src2