在 Heroku Node.js 应用上上传图片时出错

Error while uploading image on Heroku Node.js app

路线-

app.post('/add-product',(req,res)=>{
var image=randomstring.generate({
    length: 12
});
var form = new formidable.IncomingForm();
form.parse(req, function (err, fields, files) {
    var oldpath = files.pimage.path;
    var newpath = __dirname;
    var path=newpath.split('controllers');
    path=path[0]+'/public/productimages/'+image+".jpg";
    fs.readFile(oldpath, function (err, data) {
        if (err) throw err;
        // Write the file
       fs.writeFile(path, data, function (err) {
           if (err) throw err;
       });
    });
   });
});

将图像上传到 Heroku 服务器时出现问题,在本地主机上一切正常。但是在 Heroku 上,当我上传图片时,我的应用程序在这些行上崩溃了。

fs.writeFile(path, data, function (err) {
    if (err) throw err;
});

Heroku 日志截图:

将'/public.....'更改为'public/productimages/....'

我得到: 没有那个文件或目录,打开'/app/public/productimages/8sRueNlG2k3F.jpg'

这些错误通常是由目标目录(在您的情况下,/app/public/productimages/)尚不存在引起的。

您可以使用像 mkdirp 这样的包在您的应用程序启动时创建目录,或者您可以在本地创建目录并创建一个空的占位符文件(例如,名为 .placeholder)您提交到您的 Git 存储库(因为 Git 只处理文件,而不是目录,您不能将一个完全空的目录添加到存储库)。