Imagine una estructura de directorios como esta:
module index.js project main.js file.yaml Imagine además que dentro del archivo module/index.js , hay este código:
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')); } Dentro del archivo project/main.js , hay este código:
const x = require('./module'); x.test(); Y dentro del archivo project/file.yaml , hay este código:
foo: bar Quiero x.test(); para generar el contenido de project/file.yaml , de alguna manera haciendo referencia dinámicamente al directorio raíz de la persona que llama.
¿Es esto lo que querías? __dirname proporciona el directorio raíz de este archivo. Por lo tanto, no importa dónde se llame a esta función, tendrá la ubicación correcta de 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')