𝗗𝗮𝘆 𝟯𝟵 𝗼𝗳 𝗟𝗲𝗮𝗿𝗻𝗶𝗻𝗴 𝗠𝗘𝗥𝗡 𝗦𝘁𝗮𝗰𝗸
Niko katika siku ya 39 ya safari yangu ya MERN stack.
Jana nilisoma HTTP verbs kama GET na POST. Leo nilijikita katika operesheni za backend. Nilisoma jinsi seva zinavyoshughulikia data streams na body parsing.
Mtumiaji anapotuma fomu au faili, seva haipati yote kwa mkupuo mmoja. Data inafika katika vipande vidogo. Vipande hivi huitwa chunks.
Node.js hutumia streams ili kuokoa kumbukumbu (memory). Haipakii faili kubwa kwenye kumbukumbu ya seva yako mara moja. Badala yake, inashughulikia data katika sehemu ndogo ndogo.
Hivi ndivyo mchakato unavyofanya kazi:
- Data ya POST inayokuja inafanya kazi kama Readable Stream.
- Seva inapokea chunks ndogo za data ya binary.
- Lazima ukusanye chunks hizi kabla ya kutumia data hiyo.
Katika Node.js, hupati request body papo hapo. Unasikiliza matukio (events) maalum ya mtandao:
req.on("data"): Tukio hili huchochewa kila wakati chunk mpya inapofika. Unahifadhi chunks hizi kwenye array.req.on("end"): Tukio hili huchochewa wakati stream inapomalizika. Hii inakuambia kuwa data yote imefika.
Unatumia Buffer.concat kuunganisha vipande hivyo. Kisha unavibadilisha kuwa string.
Njia hii huifanya seva yako iwe na kasi na ufanisi. Inazuia hitilafu za kumbukumbu (memory crashes) wakati wa kushughulikia faili kubwa.
Chanzo: https://dev.to/ali_hamza_589ec7b3eb6688d/day-39-of-learning-mern-stack-hkp