Manière de référencer les fichiers relatifs à la racine de l'application dans Node.JS

J'ai un Node.JS application fonctionnant sur Linux à AWS EC2 qui utilise le module fs à lire dans les fichiers modèles HTML. Voici la structure actuelle de l'application:

/server.js
/templates/my-template.html
/services/template-reading-service.js

Les templates HTML sera toujours à cet endroit, cependant, le modèle de lecture-service peut se déplacer à des endroits différents (plus profond des sous-répertoires, etc.) À partir de l'intérieur du modèle-la lecture-service que j'utilise fs.readFileSync() pour charger le fichier, comme ceci:

var templateContent = fs.readFileSync('./templates/my-template.html', 'utf8');

Cela lève l'erreur suivante:

Error: ENOENT, no such file or directory './templates/my-template.html'

Je suis en supposant que c'est parce que le chemin d'accès './' est la résolution de l' '/services/annuaire de et pas la racine de l'application. J'ai aussi essayé de changer le chemin d'accès '../templates/my-template.html "et cela a fonctionné, mais il semble fragile parce que j'imagine que c'est juste la résolution relative à "un répertoire'. Si je déplace le modèle de la lecture-service de l'approfondissement de sous-répertoire, le chemin de casser.

Alors, quelle est la bonne façon de fichiers de référence par rapport à la racine de l'application?

source d'informationauteur user1438940