Ich habe ein node.js-Programm unter Verwendung des Express-Frameworks auf meinem Computer entwickelt, wo es ohne Beschwerden einwandfrei läuft.
Wenn ich das Programm jedoch auf meiner SUSE Studio-Appliance ausführe, auf der es leben soll, wird bei jeder Dateiinteraktion ein Fehler angezeigt.
Error: ENOENT, stat './path/to/file'
Ich habe überprüft, ob die Dateiberechtigungen korrekt sind. Auf meinem Computer und meiner Appliance werden verschiedene Versionen des Knotens ausgeführt, wenn dies wichtig ist.
Irgendwelche Gedanken?
__dirname + 'path/to/file';
Antworten:
Mit a angegebene Pfade
.
beziehen sich auf das aktuelle Arbeitsverzeichnis und nicht auf die Skriptdatei. Die Datei wird möglicherweise gefunden, wenn Sie ausgeführt werdennode app.js
, nicht jedoch, wenn Sie ausgeführt werdennode folder/app.js
. Die einzige Ausnahme istrequire('./file')
und das ist nur möglich, weilrequire
es pro Modul existiert und somit weiß, von welchem Modul es aufgerufen wird.Um einen Pfad relativ zum Skript zu erstellen, müssen Sie die
__dirname
Variable verwenden.oder möglicherweise
quelle
Hier der Code zur Verwendung Ihrer app.js
Eingabe gibt den Dateinamen an
quelle