Pour obtenir un chemin absolu du système de fichiers vers le répertoire où le processus de nœud est en cours d'exécution, vous pouvez utiliser process.cwd()
. Donc en supposant vous exécutez /server.js en tant que processus qui implémente /services/template-reading-service.js en tant que module, vous pouvez effectuer les opérations suivantes à partir de /service/template-reading-service.js :
var appRoot = process.cwd(),
templateContent = fs.readFileSync(appRoot + '/templates/my-template.html', 'utf8');
Si cela ne fonctionne pas, vous exécutez peut-être /service/template-reading-service.js en tant que processus séparé, auquel cas vous devrez faire en sorte que tout ce qui lance ce processus lui transmette le chemin que vous souhaitez traiter comme principal racine de l'application. Par exemple, si /server.js lance /service/template-reading-service.js en tant que processus séparé puis /server.js devrait lui passer son propre process.cwd().
Essayez
var templateContent = fs.readFileSync(path.join(__dirname, '../templates') + '/my-template.html', 'utf8');