Перейти до основного вмісту

Вступ. Завантаження файлів

HTML форма надіслана на сервер браузером має бути закодована. Якщо ми не вказуємо метод кодування, то за замовчуванням використовується application/x-www-form-urlencoded. Ми вже стикалися з цим методом кодування, коли розглядали передачу даних на сервер та знаємо, що він підтримується Express.

Але якщо виникає потреба завантажувати файли на сервер, завдання стає трохи складніше. Нам необхідно, для надсилання файлів застосовувати тип кодування multipart/form-data, який як ви зрозуміли не обробляється Express напряму.

Існує кілька пакетів для завантаження файлів на сервер. Ми розглянемо роботу з одним із них Multer та Formidable.

Перш ніж ми перейдемо до прикладів, як користуватися цими пакетами, уточнимо однє загальне питання. Що робити після обробки форми? Після того як ми обробляємо форму необхідно повернути відповідь браузеру. Існують два поширені підходи:

  • Перший – пряма відповідь. Після обробки форми ми можемо надіслати HTML або JSON безпосередньо браузеру чи клієнту.
  • Другий підхід – це переадресація. Він більш популярний ніж перший і використовує здебільшого два коди відповіді. Перший код відповіді 302 (Found — Знайдено) та другий код відповіді 303 (See Other — Дивитися інше), задіяти який, на наш погляд, більш краще. Express за умовчанням використовує для статусу код відповіді 302.