Ошибка при загрузке изображения в приложении Heroku Node.js - PullRequest
0 голосов
/ 17 ноября 2018

маршрутные

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, на Localhost все работает отлично. Но в Heroku, когда я загружаю изображение, в этих строках происходит сбой моего приложения.

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

Скриншот журнала Heroku:

i.stack.imgur.com/tX0Ta.png

После изменения '/ public .....' на 'public / productimages /....'

Я получаю: нет такого файла или каталога, откройте '/app/public/productimages/8sRueNlG2k3F.jpg'

1 Ответ

0 голосов
/ 17 ноября 2018

Эти ошибки обычно вызваны тем, что целевой каталог (в вашем случае, /app/public/productimages/) еще не существует.

Вы можете использовать пакет типа mkdirp для создания каталогакогда ваше приложение запускается, или вы можете создать каталог локально и создать пустой файл-заполнитель (например, с именем .placeholder), который вы фиксируете в своем хранилище Git (поскольку Git имеет дело только с файлами, а не с каталогами, вы не можете добавитьполностью пустой каталог в хранилище).

...