@VelkinVV

Как правильно загружать файлы на сервер Node.js?

Здравствуйте.
Подскажите, по какой причине сервер Node может не грузить файлы?
При запуске сервера на локалке, всё работает нормально, а если этот же код копирую на виртуальный сервер и запускаю там, то не могу загрузить файлы из формы фронта, получаю ошибку 500.
Сервер запускаю так же, без прокси. Т.е. работает он на своём порту, как и при запуске на локалке.
При этом, изображения загруженные по фтп, я получаю с сервера, и все запросы, где нет файлов, работают нормально.
Для загрузки использую multer.
Вот пример кода:
const multer = require('multer');
const moment = require('moment');
const path = require('path');

const storage = multer.diskStorage({
	destination(req, file, cb) {
		cb(null, 'files/uploads/');
	},
	filename(req, file, cb) {
		const date = moment().format('DDMMYYYY-HHmmss_SSS');
		const ext = path.extname(file.originalname);
		const name = path.basename(file.originalname, ext);
		cb(null, `${date}-${file.originalname.replace(/\s/g, '')}`);
	},
});

const fileFilter = (req, file, cb) => {
	if (file.mimetype === 'image/png' || file.mimetype === 'image/jpeg') {
		cb(null, true);
	} else {
		cb(null, false);
	}
};

const limits = {
	fileSize: 1024 * 1024 * 5,
};

module.exports = multer({ storage, fileFilter, limits });


На всякий случай, на локалке запускаю под виндой, а сервер на CentOS + BrainyCP.
Права папки проверил, везде RWX.
Фаервол отключал для проверки.

==========================

Разобрался. На сервере нужно прописать путь до папки файлов относительно src
cb(null, '../files/uploads/');
  • Вопрос задан
  • 59 просмотров
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега Node.js
Ткнуть в доку лучше готового к копипасте ответа
Чтоб не было проблем путей в разных окружениях, всегда стройте пути с использованием переменной __dirname или других путей, полученных на ее основе.
Для соединения нескольких частей пути в полный путь используйте path.join

Большинство библиотек относительные пути строят от process.cwd(), который напрямую зависит от того из какой папки был запущен скрипт.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы