NodeJS中process.cwd & _ _dirname的区别

NodeJS 是一个 JavaScript 运行时环境,它建立在 Chrome 的 V8 引擎之上。JavaScript 的传统用途是在浏览器中执行,但Node.JS我们可以在浏览器之外的服务器、硬件设备等中执行 JavaScript。

process.cwd()

进程对象位于称为“全局”的全局对象之下。此方法提供有关 Node.js 当前进程的信息。它还提供对其的控制。cwd 指的是相同的当前工作目录。因此,process.cwd返回当前正在执行的工作目录。

__目录名

这是一个本地模块,将返回当前模块的目录名称。此外,它是一个本地模块

进程.cwd__目录名
Returns name of the current working directory.
返回包含源代码文件的目录的名称。
It is a global object inside Node.
它是一个本地对象
It depends on the command which is invoked.
这取决于当前目录。

process.cwd() 与 __dirname

示例 1 (index.js)

// 记录 process.cwd() 输出
console.log("process.cwd(): ", process.cwd());

// 记录 __dirname 输出
console.log("__dirname: ", __dirname);

输出

C:\Users\nhooo\> node index.js.js
process.cwd(): /home/node/demo
__dirname: /home/node/demo

示例 2

使用以下文件夹结构创建以下文件

-- src/
   --index.js
   --src2/
      --index2.js

代码片段(index.js) -

// 读取并执行index2.js文件
require('./sub1/index2.js')

代码片段(index2.js) -

// 记录 process.cwd() 输出
console.log("process.cwd(): ", process.cwd());

// 记录 __dirname 输出
console.log("__dirname: ", __dirname);

index2.js使用以下命令运行该文件。

   node index2.js

输出

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

上面的输出显示文件的目录index2.js在 src/src2 而当前节点进程在 src/ 文件夹中运行。