День 39 навчання MERN stack
Я на 39-му дні свого шляху вивчення MERN stack.
Учора я вивчав HTTP-методи, такі як GET та POST. Сьогодні я зосередився на операціях бекенду. Я вивчав, як сервери обробляють потоки даних та парсинг тіла запиту.
Коли користувач надсилає форму або файл, сервер не отримує їх усі одразу. Дані надходять маленькими частинами. Ці частини називаються чанками (chunks).
Node.js використовує потоки (streams) для економії пам'яті. Він не завантажує великий файл у пам'ять сервера миттєво. Замість цього він обробляє дані невеликими частинами.
Ось як працює цей процес:
- Вхідні дані POST діють як Readable Stream.
- Сервер отримує маленькі чанки бінарних даних.
- Ви повинні зібрати ці чанки, перш ніж використовувати дані.
У Node.js ви не отримуєте тіло запиту миттєво. Ви слухаєте конкретні мережеві події:
req.on("data"): Ця подія спрацьовує щоразу, коли надходить новий чанк. Ви зберігаєте ці чанки в масиві.req.on("end"): Ця подія спрацьовує, коли потік завершується. Це сигналізує про те, що всі дані надійшли.
Ви використовуєте Buffer.concat, щоб об'єднати ці частини. Потім ви перетворюєте їх на рядок.
Цей метод дозволяє вашому серверу залишатися швидким та ефективним. Він запобігає збоям пам'яті під час обробки великих файлів.
Джерело: https://dev.to/ali_hamza_589ec7b3eb6688d/day-39-of-learning-mern-stack-hkp