MERN Stack શીખવાનો ૩૯મો દિવસ
હું મારી MERN stack સફરના ૩૯મા દિવસે છું.
ગઈકાલે મેં GET અને POST જેવા HTTP verbs વિશે અભ્યાસ કર્યો હતો. આજે મેં backend ઓપરેશન્સ પર ધ્યાન કેન્દ્રિત કર્યું. મેં સર્વર્સ કેવી રીતે data streams અને body parsing હેન્ડલ કરે છે તેનો અભ્યાસ કર્યો.
જ્યારે કોઈ યુઝર ફોર્મ અથવા ફાઇલ મોકલે છે, ત્યારે સર્વરને તે બધું એકસાથે મળતું નથી. ડેટા નાના ટુકડાઓમાં આવે છે. આ ટુકડાઓને chunks કહેવામાં આવે છે.
Node.js મેમરી બચાવવા માટે streams નો ઉપયોગ કરે છે. તે તરત જ મોટી ફાઇલને તમારી સર્વર મેમરીમાં લોડ કરતું નથી. તેના બદલે, તે ડેટાને નાના ભાગોમાં હેન્ડલ કરે છે.
પ્રક્રિયા આ રીતે કામ કરે છે:
- આવતો POST ડેટા Readable Stream તરીકે કામ કરે છે.
- સર્વર બાઈનરી ડેટાના નાના chunks મેળવે છે.
- ડેટાનો ઉપયોગ કરતા પહેલા તમારે આ chunks એકત્રિત કરવા પડે છે.
Node.js માં, તમને તરત જ request body મળતી નથી. તમારે ચોક્કસ નેટવર્ક ઇવેન્ટ્સ સાંભળવા પડે છે:
req.on("data"): જ્યારે પણ નવો chunk આવે ત્યારે આ ઇવેન્ટ ટ્રિગર થાય છે. તમે આ chunks ને એક array માં સેવ કરો છો.req.on("end"): જ્યારે stream પૂર્ણ થાય ત્યારે આ ઇવેન્ટ ટ્રિગર થાય છે. આ તમને જણાવે છે કે બધો ડેટા આવી ગયો છે.
તમે ટુકડાઓને જોડવા માટે Buffer.concat નો ઉપયોગ કરો છો. પછી તમે તેને string માં રૂપાંતરિત કરો છો.
આ પદ્ધતિ તમારા સર્વરને ઝડપી અને કાર્યક્ષમ રાખે છે. તે મોટી ફાઇલો હેન્ડલ કરતી વખતે મેમરી ક્રેશ થતા અટકાવે છે.
Source: https://dev.to/ali_hamza_589ec7b3eb6688d/day-39-of-learning-mern-stack-hkp