MERN Stack सीखने का 39वाँ दिन
मैं अपनी MERN stack यात्रा के 39वें दिन पर हूँ।
कल मैंने GET और POST जैसे HTTP verbs के बारे में पढ़ा। आज मेरा ध्यान backend operations पर था। मैंने पढ़ा कि सर्वर data streams और body parsing को कैसे हैंडल करते हैं।
जब कोई यूजर कोई फॉर्म या फाइल भेजता है, तो सर्वर को वह सब कुछ एक साथ नहीं मिलता। डेटा छोटे-छोटे टुकड़ों में आता है। इन टुकड़ों को chunks कहा जाता है।
Node.js मेमोरी बचाने के लिए streams का उपयोग करता है। यह किसी बड़ी फाइल को तुरंत आपके सर्वर की मेमोरी में लोड नहीं करता है। इसके बजाय, यह डेटा को छोटे हिस्सों में हैंडल करता है।
यह प्रक्रिया इस प्रकार काम करती है:
- आने वाला POST डेटा एक Readable Stream की तरह काम करता है।
- सर्वर को binary data के छोटे-छोटे chunks मिलते हैं।
- डेटा का उपयोग करने से पहले आपको इन chunks को इकट्ठा करना होगा।
Node.js में, आपको तुरंत request body नहीं मिलती है। आपको विशिष्ट network events को सुनना पड़ता है:
req.on("data"): यह event हर बार तब ट्रिगर होता है जब एक नया chunk आता है। आप इन chunks को एक array में सेव करते हैं।req.on("end"): यह event तब ट्रिगर होता है जब stream समाप्त हो जाती है। यह आपको बताता है कि सारा डेटा आ चुका है।
टुकड़ों को जोड़ने के लिए आप Buffer.concat का उपयोग करते हैं। फिर आप उन्हें एक string में बदल देते हैं।
यह तरीका आपके सर्वर को तेज़ और कुशल बनाए रखता है। यह बड़ी फाइलों को हैंडल करते समय मेमोरी क्रैश होने से रोकता है।
स्रोत: https://dev.to/ali_hamza_589ec7b3eb6688d/day-39-of-learning-mern-stack-hkp