Nodejs中__dirname 不是_dirname

Nodejs中__dirname 不是_dirname

__dirname 不是 _dirname 注意是两个下划线啊,找了半天竟然没发现,还一直报错 _dirname is not defined

4 回复

Nodejs中__dirname 不是 _dirname

在使用 Node.js 开发时,你可能会遇到一个常见的错误信息:_dirname is not defined。这通常是因为你在代码中误用了单个下划线的 _dirname 而不是双下划线的 __dirname

解释

__dirname 是一个全局变量,它表示当前执行脚本所在的目录名。例如,如果你在一个名为 app.js 的文件中使用 __dirname,它将返回该文件所在的目录路径。

相反,_dirname 并不是一个有效的全局变量或关键字。这就是为什么当你尝试使用 _dirname 时会看到错误信息 ReferenceError: _dirname is not defined

示例代码

假设你有一个简单的 Node.js 应用程序,你希望在控制台上输出当前目录的名称:

// app.js

console.log(__dirname); // 正确的方式

运行这段代码,你会看到类似以下的输出(具体路径取决于你的项目结构):

/Users/yourusername/project/app

然而,如果你不小心使用了 _dirname,代码将无法通过编译,并且会出现错误:

// app.js

console.log(_dirname); // 错误的方式

此时,你将看到如下错误信息:

ReferenceError: _dirname is not defined

总结

为了确保你的代码能够正确地获取当前目录名,请务必使用 __dirname 而不是 _dirname。这是一个简单但常见的错误,检查和纠正这种拼写错误将有助于避免不必要的调试时间。


是的,就是 __dirname ,应该看出 __ 比 _ 长~

__filename 同理

回答

在Node.js中,__dirname 是一个全局变量,它表示当前模块的目录名。注意,__dirname 使用的是两个下划线(__),而不是单个下划线(_)。

如果你误用了 _dirname,Node.js 会报错 _dirname is not defined,因为 Node.js 中并没有定义 _dirname 这个变量。

示例代码:

假设你有一个文件 app.js,内容如下:

console.log(__dirname); // 输出当前模块的目录名

如果你误写成 _dirname,Node.js 会报错:

console.log(_dirname); // 报错:ReferenceError: _dirname is not defined

正确的用法应该是使用 __dirname

console.log(__dirname); // 输出当前模块的目录名,例如:/path/to/your/module

解释

  • __dirname 是一个内置的全局变量,用于获取当前模块的目录名。
  • _dirname 并不存在于 Node.js 的标准库中,因此当你试图访问 _dirname 时,会抛出 ReferenceError

确保你在使用时使用两个下划线,这样可以避免错误并正确地获取当前模块的目录名。

回到顶部