Multer upload files with PM2

2019-06-06 14:56发布

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条回答
一夜七次
2楼-- · 2019-06-06 15:15

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.

查看更多
beautiful°
3楼-- · 2019-06-06 15:22

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')
查看更多
登录 后发表回答