NPM – 应用程序根目录的path

我正在开发一个NPM包,它需要从应用程序根目录需要一个模块。 可以把它看作需要一个属性模块的包,它被用户放在应用程序的根目录下。

我如何获得应用程序根目录的path?

更新:

为了总结一下我正在做的事情,express允许你做这样的事情:

app.use(express.router(myNPMModule.router)); 

路由器function将获取app作为参数。 这个想法是允许用户在一个单独的文件中指定路由,他们只需要遵循某些约定,比如把他们的控制器放在/controllers文件夹中,我的模块就能够dynamic地parsingpath,然后调用正确的方法在正确的模块中。 我已经得到了它的工作,但只是意识到,如果我打包在NPM中,我不再有权访问应用程序的path,所以我不能dynamic地调用控制器模块的方法。

让用户调用一个设置variables的函数:

  myModule.setProps(json) OR myModule = new MyModule(json) 

然后用户可以要求他们的根configuration,并启动你的模块。

更新回复编辑的问题:

Express可以让你像这样定义路线:

 var routes = require('./routes') app.get('/info', routes.info); //Routes Module exports.info = function(req, res) { res.render('info', {title: 'Express'}) }; 

我相信这正是你想要做的。 不是吗?

更新2:

您可以使用__dirnamefind当前正在执行的脚本所在的目录

 console.log(__dirname); 

尝试这个。

 var path = require('path'); console.log(path.dirname(module.parent.filename)); 

我有同样的问题。

而我只能find这个环境variables的帮助:

 process.env.PWD 

它总是指向它运行的应用程序path的根。