Node.js, can't open files. Error: ENOENT, stat './path/to/file'
Solution 1:
Paths specified with a .
are relative to the current working directory, not relative to the script file. So the file might be found if you run node app.js
but not if you run node folder/app.js
. The only exception to this is require('./file')
and that is only possible because require
exists per-module and thus knows what module it is being called from.
To make a path relative to the script, you must use the __dirname
variable.
var path = require('path');
path.join(__dirname, 'path/to/file')
or potentially
path.join(__dirname, 'path', 'to', 'file')
Solution 2:
Here the code to use your app.js
input specifies file name
res.download(__dirname+'/'+input);