Nodejs 如何获得当前执行module的路径

Nodejs 如何获得当前执行module的路径

包括该文件的路径和该文件所在文件夹路径。。。。 我知道可以使用module.filename获得文件名,那么目录名呢?需要麻烦的使用module.filename来构建吗?

6 回复

当然可以!在 Node.js 中,获取当前执行模块的路径是一个常见的需求。你可以通过 __dirname__filename 来轻松地获取文件所在的目录路径和文件路径。

获取文件路径

如果你想要获取当前执行模块的完整文件路径,可以直接使用 __filename

console.log(__filename);

例如,如果当前文件位于 /home/user/project/app.js,那么输出将会是:

/home/user/project/app.js

获取目录路径

如果你想要获取当前文件所在的目录路径,可以使用 __dirname

console.log(__dirname);

例如,如果当前文件位于 /home/user/project/app.js,那么输出将会是:

/home/user/project

示例代码

假设你有一个简单的 Node.js 应用程序,如下所示:

// app.js
console.log('File Path:', __filename);
console.log('Directory Path:', __dirname);

当你运行这个脚本时,你会看到类似如下的输出:

File Path: /home/user/project/app.js
Directory Path: /home/user/project

总结

  • __filename 返回当前模块文件的完整路径。
  • __dirname 返回当前模块文件所在的目录路径。

这两种属性都是内置的全局变量,不需要额外的库或复杂的逻辑。希望这能帮到你!


__filename 是当前文件名, __dirname 是当前文件所在的目录

这种情况你应该说教一下滴^ ^

遇到才看的飘过… 是不是 __filenamemodule.filename 永远返回相同的值啊?

还真没试过.不过可能会不一样.

在 Node.js 中,你可以通过 __dirname__filename 来获取当前模块的目录路径和文件路径。__dirname 是一个全局变量,它返回当前模块的目录名,而 __filename 返回当前模块文件的完整路径。

示例代码

假设你有一个文件结构如下:

project/
├── index.js
└── lib/
    └── helper.js

helper.js

console.log('Current directory:', __dirname);
console.log('Current file path:', __filename);

当你在 index.js 中调用 require('./lib/helper') 时,输出将会是:

index.js

const helper = require('./lib/helper');

输出将会是:

Current directory: /path/to/project/lib
Current file path: /path/to/project/lib/helper.js

解释

  • __dirname: 返回当前模块所在的目录路径。
  • __filename: 返回当前模块文件的完整路径。

因此,你不需要手动去解析 module.filename 来获取目录路径。__dirname 已经为你提供了方便的途径来获取当前模块的目录路径。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!