Я пытаюсь загрузить изображение из приложения React Native в приложение heroku express в папке public / images /. Он показывает мне сообщение об успехе, но в папке изображений нет изображения. Между тем, когда я пробую этот код на localhost, он отлично работает ..

router.post('/add', (req, res) => {
    let imageFile = req.files.photo;
    let fileName = Date.now();
    let imgName = fileName+req.files.photo.name;
    let dirName = __dirname.replace('routes','public')
    dirName = dirName+'/images/';
    let path = dirName+imgName;
    imageFile.mv(path, (err)=> {
        if (err) {
            return res.status(501).json({
                message: 'error'
            });
        } else {
            return res.status(200).json({
                message: 'success'
            })
        }
    });
})
1
Ali Raza 1 Ноя 2018 в 12:58

1 ответ

Лучший ответ

Файловая система Heroku эфемерна, и вы не можете использовать ее для постоянного хранения чего-либо. во время выполнения. Вместо этого вы можете использовать надстройку из Heroku Elements Marketplace, чтобы реализовать свои потребности в хранении. Для вашего конкретного случая использования Cloudinary кажется подходящим вариантом. Их бесплатный план дает вам 10 ГБ хранилища. Вы можете легко загрузить изображение в cloudinary из кода node.js, как описано здесь.

1
Yoni Rabinovitch 1 Ноя 2018 в 10:54