我有一个快速应用程序,并使用multer上传文件, 问题是当我在PM2的生产服务器上运行应用程序时,multer上传文件给了我一个错误:
"错误:ENOENT:没有这样的文件或目录,打开' uploads / img.png' 在错误(本机)"
但当我用" Debug = projectname:* npm start"它的工作正常。
请注意,我已经创建了包含所有权限的上传目录,并为所有人提供了读写权限。
(抱歉我的英语不好)
答案 0 :(得分:1)
我会尝试猜测问题。
在pm2,您将不会使用cwd param,因此您的应用程序会以错误的根目录开头。
答案 1 :(得分:0)
我通过改变绝对路径的相对路径来解决同样的问题
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]);
}
})
我改变之前的第三行就像下面的
cb(null, './public/uploads')