var stream = require('stream');
چهارنوع استریم در نود جی اس وجود دارد:
این نوع استریم، عملیات خواندن انجام می دهد. همه جنبه های استریم خواندنی به شرح زیر است:
استریم هایی که به منظور انجام عمل نوشتن مورد استفاده قرار می گیرند، از نوع استریم خواندنی هستند. تمام جنبه های استریم خواندنی در زیر توضیح داده شده است:
این استریم بطور همزمان هر دو نوع استریم خواندنی و نوشتنتی را پیاده سازی می کند. پرکاربردترین مثال این استریم، net.socket است که خود کلاسی از ماژول net است. برای درک بهتر استریم دوسویه توضیحاتی ارائه می دهیم.
همانطور که در روز 14 توضیح دادیم، سوکتها می توانستند برای انجام عملیات همزمان در نود جی اس به کار روند. فرض کنید یک سوکت ساخته ایم تا عملیات ارسال و دریافت داده ها را همزمان انجام دهد. این کار با استریم دوسویه هم حاصل می شود. ما دو کانال مستقل در شبکه خواهیم داشت که یکی برای انتقال و دیگری برای دریافت داده ها استفاده می شود.
استریم تبدیل، نوعی استریم دوسویه است که داده ها را در حین خوانده شدن یا نوشته شدن، تبدیل می کند یا تغییر می دهد. همچنین در جایی که خروجی به ورودی مرتبط است این نوع استریم به کار می رود. این استریم ها داده های ورودی را خوانده و به کمک توابعی آنها را همانند شکل زیر به خروجی تبدیل می کنند.

همچنین می توانیم استریم ها را بصورت زنجیره ای از پایپ ها به یکدیگر متصل کنیم تا قادر به اجرای پردازش های پیچیده باشند:

قطعه کد زیر نشان می دهد که چگونه می توان از استریم ها در نود جی اس استفاده نمود:
// require fs module for file system
var fs = require('fs');
// write data to a file using writeable stream
var wdata = "I am working with streams for the first time";
var myWriteStream = fs.createWriteStream('aboutMe.txt');
// write data
myWriteStream.write(wdata);
// done writing
myWriteStream.end();
// write handler for error event
myWriteStream.on('error', function(err){
console.log(err);
});
myWriteStream.on('finish', function() {
console.log("data written successfully using streams.");
console.log("Now trying to read the same file using read streams ");
var myReadStream = fs.createReadStream('aboutMe.txt');
// add handlers for our read stream
var rContents = '' // to hold the read contents;
myReadStream.on('data', function(chunk) {
rContents += chunk;
});
myReadStream.on('error', function(err){
console.log(err);
});
myReadStream.on('end',function(){
console.log('read: ' + rContents);
});
console.log('performed write and read using streams');
});
و مثل همیشه، برای اجرا، دستور زیر را در ترمینال یا خط فرمان وارد کنید:
> node filename_streams.js
در این بخش از دوره آموزشی 30 روز با نود جی اس، مبانی استریم ها را یادگرفتیم، استریم چیست، انواع استریم ها (خواندنی، نوشتنی، دوسویه و تبدیل) و در نهایت یک کد به عنوان مثال در مورد نحوه استفاده از استریم ها نوشتیم.
در این قسمت، به پرسشهای تخصصی شما دربارهی محتوای مقاله پاسخ داده نمیشود. سوالات خود را اینجا بپرسید.