Object mode
- Node.js kursu
- Uzman
- Ders 27/47
- 5 dk
Stream object mode ve binary mode farkını öğrenirsin.
Object mode nedir?
Stream'ler varsayılan olarak binary kipte çalışır: Buffer ve dize parçaları akar. Object mode açıldığında ise her parça bir nesnedir; bu, sayı, dizi veya kayıt akıtmak için uygundur.
Bir chunkType(mode) fonksiyonu bu ayrımı modeller: mode === 'object' ise 'object chunk', değilse 'binary chunk' döndürür. Object mode'da highWaterMark bayt değil nesne sayısıdır; bu nedenle 16 nesne eşiği gibi değerler kullanılır. Object mode, new Readable({ objectMode: true }) seçeneğiyle açılır. Bu derste ayrımı tek bir fonksiyonla netleştiriyoruz; gerçek stream'de ise objectMode seçeneği bunu belirler.
Chunk türü kararı
Bir chunk'ın türü, stream'in kipine bağlıdır. Object mode'da chunk bir nesnedir; binary kipte ise Buffer veya dizedir. Bu ayrım, _read ve _write uygulamalarında veriyi nasıl işleyeceğinizi belirler.
Örnek: chunkType('object') 'object chunk' döner; chunkType('binary') 'binary chunk' döner. Object mode'da stream.read() bir nesne döndürür; binary kipte ise bir Buffer. Bu basit fonksiyon, kip ile chunk türü arasındaki bağı net gösterir. İleride Transform stream'i yazarken objectMode seçeneğini ayarlamak, bu kararı uygulamanın yolu olur.
Uygulama Chunk türü fonksiyonu yaz
function chunkType(mode) yaz. if (mode === 'object') return 'object chunk'; ile başla. return 'binary chunk'; ile bitir. console.log(chunkType('object')) ve console.log(chunkType('binary')) yazdır.
Başlangıç kodu
// chunkType fonksiyonu yaz
// mode 'object' ise 'object chunk', değilse 'binary chunk' döndürsün
// 'object' ve 'binary' çağrılarını yazdır
// buraya yazÖrnek çözüm
function chunkType(mode) {
if (mode === 'object') return 'object chunk';
return 'binary chunk';
}
console.log(chunkType('object'));
console.log(chunkType('binary'));Beklenen çıktı
object chunk binary chunk
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Parçayı rolüne eşle
| Kavram | Anlamı |
|---|---|
Object mode |
Nesne taşır |
Binary mode |
Buffer taşır |
objectMode: true |
Seçenek |
highWaterMark |
Eşik |
2 chunkType('object') ne döndürür?
function chunkType(m) {
if (m === 'object') return 'object chunk';
return 'binary chunk';
}
chunkType('object')- binary chunk
- Buffer
- object chunk Doğru cevap
- undefined
Açıklama: mode 'object' olduğundan 'object chunk' döner.
3 Koşulu tamamla
if (mode === '____') return 'object chunk';
if (mode === 'object') return 'object chunk';
Açıklama: mode 'object' ile karşılaştırılır.