1

i have a express app and am using multer to uploads files, the problem is when i running the app in the production server with PM2 the multer upload file gave me an error:

"Error: ENOENT: no such file or directory, open 'uploads/img.png' at Error (native)"

but when i run it with "Debug=projectname:* npm start" its just work fine.

note that i already create uploads directory with all the permissions "read and write for anyone".

(sorry for my bad english)

2 Answers2

1

I will try to guess the problem.

At your pm2 will you don't use cwd param, so your application starts with wrong root directory.

galkin
  • 5,264
  • 3
  • 34
  • 51
  • May you please give an example here, I have tried everything on internet and still having the issue. – Nazim Apr 10 '21 at 18:41
0

I have solved the same problem by change relative path to absolute path

var storage = multer.diskStorage({
destination: function(req, file, cb) {
  cb(null, __dirname + '/public/uploads')
},
filename: function(req, file, cb) {
  var fileFormat = (file.originalname).split(".");
  cb(null, file.fieldname + '-' + Date.now() + "." + 
  fileFormat[fileFormat.length - 1]);
}
})

The third line before I change just like below

cb(null, './public/uploads')
kevin
  • 81
  • 2