Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,它允许开发者使用 JavaScript 编写服务器端的应用程序。在 Node.js 中,可以通过 __dirname
变量获取当前执行脚本所在的目录路径。
__dirname
: 这是一个全局变量,表示当前模块文件所在的目录的绝对路径。process.cwd()
: 这也是一个全局方法,但它返回的是运行 node 命令时所在的目录的绝对路径,而不是当前执行的脚本文件的目录。__dirname
可以确保路径的正确性,特别是在模块化的项目中,每个模块都可以准确地引用其自身的文件路径。__dirname
提供的是绝对路径,因此可以避免因相对路径导致的错误,提高代码的可移植性。__dirname
可以避免路径错误。__dirname
来构建模块的绝对路径。// 获取当前脚本所在的目录
const currentDir = __dirname;
console.log('当前脚本所在的目录:', currentDir);
// 使用 __dirname 构建文件路径并读取文件
const fs = require('fs');
const filePath = `${__dirname}/example.txt`;
fs.readFile(filePath, 'utf8', (err, data) => {
if (err) {
console.error('读取文件时发生错误:', err);
return;
}
console.log('文件内容:', data);
});
__dirname
和 process.cwd()
返回的路径不同?__dirname
返回的是当前执行脚本文件的目录路径,而 process.cwd()
返回的是启动 Node.js 进程时的工作目录路径。这两者可能不同,特别是在项目目录结构复杂或通过不同的工作目录启动脚本时。__dirname
。process.cwd()
。通过理解这两个概念的区别,可以更准确地处理文件路径相关的操作,避免因路径错误导致的问题。
领取专属 10元无门槛券
手把手带您无忧上云