Dzień 39 nauki MERN Stack
Jestem w 39. dniu mojej przygody z MERN stack.
Wczoraj studiowałem metody HTTP, takie jak GET i POST. Dzisiaj skupiłem się na operacjach backendowych. Studiowałem, jak serwery obsługują strumienie danych i parsowanie body.
Gdy użytkownik wysyła formularz lub plik, serwer nie otrzymuje go naraz. Dane przychodzą w małych kawałkach. Te kawałki nazywane są chunkami.
Node.js używa strumieni, aby oszczędzać pamięć. Nie ładuje on od razu dużego pliku do pamięci serwera. Zamiast tego przetwarza dane w małych częściach.
Oto jak wygląda ten proces:
- Przychodzące dane POST działają jako Readable Stream.
- Serwer otrzymuje małe chunki danych binarnych.
- Musisz zebrać te chunki, zanim użyjesz danych.
W Node.js nie otrzymujesz natychmiastowego request body. Nasłuchujesz konkretnych zdarzeń sieciowych:
req.on("data"): To zdarzenie wyzwalane jest za każdym razem, gdy przychodzi nowy chunk. Zapisujesz te chunki w tablicy.req.on("end"): To zdarzenie wyzwalane jest, gdy strumień się kończy. Informuje Cię to, że wszystkie dane dotarły.
Używasz Buffer.concat, aby połączyć te części. Następnie konwertujesz je na string.
Ta metoda sprawia, że Twój serwer działa szybko i wydajnie. Zapobiega to awariom pamięci podczas obsługi dużych plików.
Źródło: https://dev.to/ali_hamza_589ec7b3eb6688d/day-39-of-learning-mern-stack-hkp