Multer не сохраняет изображение в папке

Я развернул свое экспресс-приложение на heroku и пытаюсь загрузить изображения с помощью multer. Все это отлично работает на localhost, но на heroku, когда я загружаю изображение, оно не сохраняется в моей папке изображений, и я получаю ошибку сервера 500 с: Ошибка: ENOENT: нет такого файла или каталога, откройте "../images/kauai-mountain.jpg"

Я использую приложение для создания реакции на интерфейсе.

const storage = multer.diskStorage({
    destination: (req, file, cb) => { 
        cb(error, '../images/');
     },
     filename: (req, file, cb) => {
         cb(null, file.originalname);
     }
});

router.post('/', multer({ storage }).single('image'), (req, res) => {
    const { description, category } = req.body;
    const url = req.protocol + '://' + req.get('host');

    const newPost = new Post({
        description,
        category,
        imagePath: url + '/images/' + req.file.filename
    });

    newPost.save().then(post => res.json(post)).catch(e => res.json(e));
});

server.js

if (process.env.NODE_ENV === 'production') {
    app.use('/images', express.static(path.join(__dirname, 'images')));
    app.use('/', express.static('client/build'));

    app.get('*' , (req, res) => {
        res.sendFile(path.resolve(__dirname, 'client', 'build', 'index.html'));
    });
}

Мой код переднего плана загружает изображение и отправляет его по маршруту, ошибка находится в бэкэнде.

РЕДАКТИРОВАТЬ Я читаю, что проблема может заключаться в том, что heroku не может постоянно сохранять изображения. Я не понимаю, потому что я сохраняю их в папке изображений на моем сервере, который я запускаю на heroku. Может в этом проблема?

Может быть, это глупый вопрос, но ожидается ли второй .jpg в имени файла '../images/kauai-mountain.jpg.jpg'? Можете ли вы вывести на консоль req.file.filename и поделиться результатом?

saglamcem 03.10.2018 22:47

Я исправил эту опечатку. Имя файла должно быть хорошим, отлично работает на локальном хосте, но когда я нажимаю на heroku, я получаю код 500 с каждой отправкой на сервер ..

brett 03.10.2018 22:49

Понятно. Если ваша папка с изображениями вначале пуста, может быть полезно следующее: github.com/expressjs/multer/issues/591

saglamcem 03.10.2018 22:57

Папка существует, поместите в нее образец изображения, чтобы я мог загрузить его в github, поскольку heroku использует репозиторий git

brett 03.10.2018 23:00
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
1 157
0

Другие вопросы по теме