在我编写的Node.js模块中,我想打开一个文件 - 即fs.readFile()
- 与我的模块包含在同一目录中。我的意思是它与./node_modules/<module_name>/index.js
文件位于同一目录中。
看起来fs
模块执行的所有相对路径操作都是相对于Node.js启动的目录进行的。因此,我想我需要知道如何获取正在执行的当前Node.js模块的路径。
感谢。
答案 0 :(得分:43)
正如评论中提到的david van brink一样,正确的解决方案是使用__dirname
。此全局变量将返回当前正在执行的脚本的路径(即,您可能需要使用../
来访问模块的根目录。)
例如:
var path = require("path");
require(path.join(__dirname, '/models'));
只是为了避免让人头疼。