День 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