Per ottenere un percorso assoluto del filesystem alla directory in cui è in esecuzione il processo del nodo, puoi usare process.cwd()
. Quindi supponendo stai eseguendo /server.js come processo che implementa /services/template-reading-service.js come modulo, puoi eseguire le seguenti operazioni da /service/template-reading-service.js :
var appRoot = process.cwd(),
templateContent = fs.readFileSync(appRoot + '/templates/my-template.html', 'utf8');
Se non funziona, potresti eseguire /service/template-reading-service.js come processo separato, nel qual caso dovrai fare in modo che qualsiasi avvio di quel processo gli passi il percorso che desideri trattare come primario radice dell'applicazione. Ad esempio, se /server.js avvia /service/template-reading-service.js come processo separato quindi /server.js dovrebbe passargli il proprio process.cwd().
Prova
var templateContent = fs.readFileSync(path.join(__dirname, '../templates') + '/my-template.html', 'utf8');