Para obtener una ruta absoluta del sistema de archivos al directorio donde se ejecuta el proceso del nodo, puede usar process.cwd()
. Así que asumiendo está ejecutando /server.js como un proceso que implementa /services/template-reading-service.js como módulo, puede hacer lo siguiente desde /service/template-reading-service.js :
var appRoot = process.cwd(),
templateContent = fs.readFileSync(appRoot + '/templates/my-template.html', 'utf8');
Si eso no funciona, es posible que esté ejecutando /service/template-reading-service.js como un proceso separado, en cuyo caso deberá hacer que lo que inicie ese proceso lo pase por la ruta que desea tratar como el principal raíz de la aplicación. Por ejemplo, si /server.js inicia /service/template-reading-service.js como un proceso separado entonces /server.js debería pasarle su propio proceso.cwd().
Prueba
var templateContent = fs.readFileSync(path.join(__dirname, '../templates') + '/my-template.html', 'utf8');