MERN Stack Öğrenmenin 39. Günü
MERN stack yolculuğumun 39. günündeyim.
Dün GET ve POST gibi HTTP metodlarını çalıştım. Bugün ise backend operasyonlarına odaklandım. Sunucuların veri akışlarını (data streams) ve body parsing işlemlerini nasıl yönettiğini inceledim.
Bir kullanıcı bir form veya dosya gönderdiğinde, sunucu bunu tek seferde almaz. Veriler küçük parçalar halinde gelir. Bu parçalara "chunk" denir.
Node.js, belleği korumak için stream'leri kullanır. Büyük bir dosyayı hemen sunucu belleğine yüklemez. Bunun yerine, veriyi küçük parçalar halinde işler.
Süreç şu şekilde işler:
- Gelen POST verisi bir Readable Stream gibi davranır.
- Sunucu, küçük binary veri parçaları alır.
- Veriyi kullanmadan önce bu parçaları toplamanız gerekir.
Node.js'de anlık bir request body almazsınız. Belirli ağ olaylarını dinlersiniz:
req.on("data"): Bu olay, her yeni parça geldiğinde tetiklenir. Bu parçaları bir dizi (array) içinde saklarsınız.req.on("end"): Bu olay, akış tamamlandığında tetiklenir. Tüm verilerin geldiğini size bildirir.
Parçaları birleştirmek için Buffer.concat kullanırsınız. Ardından bunları bir string'e dönüştürürsünüz.
Bu yöntem, sunucunuzun hızlı ve verimli kalmasını sağlar. Büyük dosyaları işlerken bellek çökmelerini önler.
Kaynak: https://dev.to/ali_hamza_589ec7b3eb6688d/day-39-of-learning-mern-stack-hkp