GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Korrekte Methode zum Referenzieren von Dateien relativ zum Anwendungsstamm in Node.JS

Um einen absoluten Dateisystempfad zu dem Verzeichnis zu erhalten, in dem der Knotenprozess ausgeführt wird, können Sie process.cwd() verwenden . Also vorausgesetzt Sie führen /server.js aus als Prozess, der /services/template-reading-service.js implementiert als Modul, dann können Sie Folgendes von /service/template-reading-service.js aus tun :

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

Wenn das nicht funktioniert, führen Sie möglicherweise /service/template-reading-service.js aus als separater Prozess. In diesem Fall müssen alle Starts dieses Prozesses den Pfad passieren, den Sie als primären behandeln möchten Anwendungsstamm. Zum Beispiel, wenn /server.js /service/template-reading-service.js startet als separater Prozess dann /server.js sollte ihm seine eigene process.cwd() übergeben.


Versuchen Sie es mit

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

Linux
  1. Der kürzeste Weg, um zwei Dateien in Bash auszutauschen

  2. Max offene Dateien für den Arbeitsprozess

  3. Wie verwendet man inotify richtig?

  4. Was ist der richtige Weg, um Tabulatoren in sed einzufügen?

  5. Linux verfolgt alle Dateien, auf die der Prozess zugreift?

Kopieren Sie Dateien zwischen Linux und FreeDOS

Verwalten von Knotenanwendungen mit PM2

NGINX als Reverse Proxy für Node- oder Angular-Anwendungen

Eine Anleitung zum Dateisystem „/proc“ unter Linux

So verhindern Sie, dass ein Prozess Dateien schreibt

Gibt es eine Möglichkeit, den Prozess zu hören?