NodeJS 中 process.cwd 和 __dirname 的区别


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

process.cwd()

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

__dirname

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

process.cwd__dirname
返回当前工作目录的名称。
返回包含源代码文件的目录的名称。
它是 Node 内部的全局对象。
它是一个局部对象。
它取决于调用的命令。
它取决于当前目录。

process.cwd() 与 __dirname

示例 1 (index.js)

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

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

输出

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

示例 2

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

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

代码片段 (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);

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

   node index2.js

输出

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

以上输出显示文件 index2.js 的目录位于 src/src2,而当前 Node 进程正在 src/ 文件夹中运行。

更新于: 2021年4月27日

458 次查看

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.