Я развернул свое экспресс-приложение на 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. Может в этом проблема?
Я исправил эту опечатку. Имя файла должно быть хорошим, отлично работает на локальном хосте, но когда я нажимаю на heroku, я получаю код 500 с каждой отправкой на сервер ..
Понятно. Если ваша папка с изображениями вначале пуста, может быть полезно следующее: github.com/expressjs/multer/issues/591
Папка существует, поместите в нее образец изображения, чтобы я мог загрузить его в github, поскольку heroku использует репозиторий git





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