Следующим на очереди, когда я работаю над бэкэнд-проектами, чтобы завершить скоростной прогон 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.
Примечания:
- Вы можете просмотреть исходный код здесь
- На GoMix вы можете увидеть и код, и живую демонстрацию.
- Вы можете найти удивительное хранилище значков Франческо Аньолетто (Корнил) здесь.
Мой прогресс в Speedrun до сих пор:
- Страница Дани
- Машина случайных котировок
- Микросервис с отметкой времени
- Микросервис заголовка запроса
- Микросервис метаданных файлов - этот пост