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 میں تبدیل کر دیتے ہیں۔
یہ طریقہ آپ کے سرور کو تیز اور موثر رکھتا ہے۔ یہ بڑی فائلوں کو ہینڈل کرتے وقت memory crashes سے بچاتا ہے۔
ماخذ: https://dev.to/ali_hamza_589ec7b3eb6688d/day-39-of-learning-mern-stack-hkp