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的根。