Node.js, impossible d’ouvrir des fichiers. Erreur: ENOENT, stat ‘./path/to/file’

J’ai développé un programme node.js en utilisant le framework express sur mon ordinateur, où il fonctionne correctement 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 permissions de fichiers sont correctes, ce qu’elles sont. Mon ordinateur et mon appareil exécutent différentes versions de nœud, si cela est important.

Des pensées?

Chemins spécifiés avec un . sont relatifs au répertoire de travail en cours, et non au fichier script. Donc, le fichier peut être trouvé si vous exécutez le node app.js mais pas si vous exécutez le node folder/app.js La seule exception à cette règle est require('./file') et cela est possible uniquement parce que le require existe par module et sait donc de quel module il est appelé.

Pour créer un chemin relatif au script, vous devez utiliser la variable __dirname .

 var path = require('path'); path.join(__dirname, 'path/to/file') 

ou potentiellement

 path.join(__dirname, 'path', 'to', 'file') 

Ici le code pour utiliser votre app.js

input spécifie le nom du fichier

 res.download(__dirname+'/'+input);