Ich habe eine Server-Datei, die E-Mails an Benutzer basierend auf der restify
API, die ich gebaut habe, sendet. Diese Datei befindet sich unter /lib
Verzeichnis. Und wenn diese Datei mail_helper.js
versucht, die Datei ./email_templates/default-inline.html
zu lesen, schlägt es fehl. Es wird versucht, email_template
Datei von der root
der Knoten App statt innerhalb lib
Verzeichnis zu finden. Die Ordnerstruktur sieht wie folgt aus:Relative Pfad readFile Fehler ENOENT: keine solche Datei
- root
- package.json
- index.js (requires lib/mail_helper.js)
- lib
- mail_helper.js (reads file ./email_templates/default-inline.html)
- email_templates
- default-inline.html
Lauf node index.js
aus dem Stammverzeichnis der Fehler führt:
Error: ENOENT: no such file or directory, open 'my-local-path\root\email-templates\default-inline.html'
Wie kann ich richtig relativen Pfad verweisen diese Situation zu vermeiden?
Verwenden Sie keinen relativen Pfad, verwenden Sie etwas wie> 'path.join (__ Verzeichnisname, 'email_templates', 'default-inline.html')' ein relativer Pfad ist nur sinnvoll bei Ihren Anforderungen, nicht bei der Übergabe von Dateinamen Über. – Keith
@Keith Das hat funktioniert! Aber ich habe das an vielen Stellen gemacht. Können Sie bitte einen Code in Antwort hinzufügen und erklären, was __dirname tut? – kirtan403