我想知道是否有最佳方法或最佳实践来获取Node.js中应用程序的完整路径。示例:我在子文件夹/apps/myapp/data/models/mymodel.js 中有一个模块,我想获取应用程序的完整路径(而不是文件的完整路径),这将返回/apps/myapp ,我该怎么做?我知道 _dirname _file 仅与文件本身有关,而与应用程序的完整路径无关。

最佳答案

可能有更好的解决方案,应该可以工作:

var path = require('path');

// find the first module to be loaded
var topModule = module;

while(topModule.parent)
  topModule = topModule.parent;

var appDir = path.dirname(topModule.filename);
console.log(appDir);

编辑:Andreas在评论中提出了一个更好的解决方案:
path.dirname(require.main.filename)

编辑:Nam Nguyen的另一种解决方案
path.dirname(process.mainModule.filename)

10-07 21:02