Следующим на очереди, когда я работаю над бэкэнд-проектами, чтобы завершить скоростной прогон Chingu FCC Speedrun Challenge, является микросервис метаданных файлов.

Я знаю, ты подумаешь, что я сошел с ума, но я все равно скажу это - это ЛЕГКО. Ага, я пошел туда, это несложно. Вы хотите пару советов, которые сделают эту прогулку по парку?

Прочтите документацию на мультер.

На самом деле, это так просто, этот проект в значительной степени является прямой копией проекта, который вы создали для микросервиса timestamp, все, что вам нужно сделать, это добавить «multer middleware» в свой почтовый запрос.

Вот пара моментов, на которые вам стоит обратить внимание:

upload.single

Это промежуточное ПО, которое вы хотите добавить прямо перед отправкой своего почтового запроса в модуль, который его обрабатывает.

Обратите внимание, что этот фрагмент очень похож на маршруты, фрагменты которых я показывал в предыдущих проектах микросервисов, единственная разница заключается в вызове upload.single непосредственно перед отправкой его в свой модуль fileMulter. (Чтобы никого не застали врасплох, параметр, который вы передаете для загрузки сингла, - это просто имя поля формы, которое соответствует вашему вводу для загрузки на странице ввода).

router.route('/api/file-size').post(upload.single('file'),fileMulter.parse);

MemoryStorage

Вы хотите использовать хранилище памяти, чтобы вам не нужно было фактически хранить файл, который загружается на ваш сайт.

Механизм хранения в памяти хранит файлы в памяти как Buffer объекты. У него нет никаких вариантов.

var storage = multer.memoryStorage ()

var upload = multer ({хранилище : хранилище})

Если вы отключите эти две вещи (upload.single и Memory Storage), получение размера файла будет одним лайнером, потому что размер файла в объекте запроса просто req.file.size.

Примечания:

Мой прогресс в Speedrun до сих пор: