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

📅  最后修改于: 2023-12-03 14:44:41.816000             🧑  作者: Mango

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

在 Node.js 中,有时需要获取当前执行文件的路径,这时我们通常会使用 process.cwd() 和 __dirname 这两个方法。虽然这两个方法看起来很相似,但它们实际上有着不同的用途和作用域。

process.cwd()

process.cwd() 方法用于获取当前工作目录的路径。它返回的是一个字符串类型的路径,表示 Node.js 进程当前的工作目录。

console.log(process.cwd()); // 输出当前工作目录的路径

这个方法是相对于 Node.js 进程所在的系统,而不是相对于当前执行文件的路径。

__dirname

__dirname 是 Node.js 中的一个全局变量,它用于获取当前执行文件所在目录的路径。它返回的也是一个字符串类型的路径。

console.log(__dirname); // 输出当前执行文件的目录路径

与 process.cwd() 不同的是,__dirname 方法返回的是相对于当前执行文件的路径,它不受 Node.js 进程的影响,在不同的文件中执行时,返回的结果也是不同的。

// 在 index.js 文件中执行
console.log(__dirname); // 输出当前 index.js 文件所在目录的路径

// 在 test.js 文件中执行
console.log(__dirname); // 输出当前 test.js 文件所在目录的路径

总之,process.cwd() 和 __dirname 都是用于获取当前路径的方法,但它们的用途和作用域是不同的。在实际开发中,需要根据具体的需求来选择合适的方法。