J'ai développé un programme node.js en utilisant le framework express sur mon ordinateur, où il fonctionne bien sans aucune plainte.
Cependant, lorsque j'exécute le programme sur mon appareil SUSE Studio, où il est destiné à vivre, je reçois une erreur lors de toute interaction de fichier.
Error: ENOENT, stat './path/to/file'
J'ai vérifié que les autorisations de fichier sont correctes, ce qu'elles sont. Mon ordinateur et mon appareil exécutent différentes versions de node, si cela est important.
Des pensées?
__dirname + 'path/to/file';
Réponses:
Les chemins indiqués avec un
.
sont relatifs au répertoire de travail actuel et non au fichier de script. Ainsi, le fichier peut être trouvé si vous exécuteznode app.js
mais pas si vous exécuteznode folder/app.js
. La seule exception à cela estrequire('./file')
et cela n'est possible que parce qu'ilrequire
existe par module et qu'il sait donc de quel module il est appelé.Pour créer un chemin relatif au script, vous devez utiliser la
__dirname
variable.ou potentiellement
la source
Voici le code pour utiliser votre app.js
l'entrée spécifie le nom du fichier
la source