想象一下这样的目录结构:
module
index.js
project
main.js
file.yaml
进一步想象一下,在module/index.js
文件中,有这样的代码:
const fs = require('fs');
exports.test = function() {
// How should I *dynamically* reference the caller's app root directory?
console.log(fs.readFileSync('file.yaml', 'utf8'));
}
在project/main.js
文件中,有以下代码:
const x = require('./module');
x.test();
在project/file.yaml
文件中,有这样的代码:
foo: bar
我希望x.test();
输出project/file.yaml
的内容,以某种方式动态地引用调用方的根目录。
这是你想要的吗?__dirname
给出了该文件的根目录。所以,无论这个函数在哪里被调用,它都将具有file.yaml
的正确位置。
const fs = require('fs');
exports.test = function(fileLocation) {
// How should I *dynamically* reference the caller's app root directory?
console.log(fs.readFileSync(fileLocation), 'utf8'));
}
// Calling location
test(path.join(__dirname, './file.yaml')