Streams
Streams اشیایی می باشند که به شما قابلیت میدهند اطلاعات را از یک منبع بخوانید یا این که طراحی اپلیکیشن در مشهد اطلاعات را به یک مقصد بنویسید.
در Node.js ، چهار نوع Stream وجود دارااست :
Readable : استریمی که برای عملیات تلاوت به کار گیری میگردد.
Writable : استریمی که برای عملیات تایپ کردن استعمال میگردد.
Duplex : استریمی که میتواند هم برای عملیات تلاوت و هم برای تایپ کردن مصرف شود.
Transform : یک نوع جریان دوبلکس که در آن خروجی بر طبق ورودی به حساب آوردن میگردد.
هر نوع Stream یک مثال EventEmitter میباشد و تعدادی روی داد را در حینهای گوناگون ارسال مینماید.
data : این روی داد هنگامی فعال میشود که داده ای برای تلاوت در دسترس باشد.
end ؛ این روی داد وقتی فعال میشود که داده دیگری برای تلاوت وجود نداشته باشد.
error : این اتفاق افتاد وقتی فعال میگردد که در اخذ یا این که تایپ کردن اطلاعات خطایی وجود داشته باشد.
finish : این اتفاق افتاد وقتی فعال میگردد که مجموع اطلاعات به سیستم زیرین منتقل شوند.
پیرو برای قرائت و تایپ کردن استریم ها نمونه خوا هیم زد.
قرائت از یک جریان
یک فولدر متنی با اسم input.txt با محتوای پایین ساخت و ساز نمائید :
Manataz provides the most complete and specialized programming services
COPY
یک پوشه js با اسم main.js با کد تحت تولید فرمایید :
var fs = require("fs");
var data = \'\';
// Create a readable stream
var readerStream = fs.createReadStream(\'input.txt\');
// Set the encoding to be utf8.
readerStream.setEncoding(\'UTF8\');
// Handle stream events --> data, end, and error
readerStream.on(\'data\', function(chunk) {
data += chunk;
});
readerStream.on(\'end\',function() {
console.log(data);
});
readerStream.on(\'error\', function(err) {
console.log(err.stack);
});
console.log("Program Ended");
COPY
در حال حاضر main.js را جاری ساختن فرمائید تا فیض را ملاحظه کنید :
$ node main.js
COPY
پذیرش خروجی :
Program Ended
Manataz provides the most complete and specialized programming services
COPY
تایپ کردن Stream
یک پوشه js با اسم main.js با کد تحت تولید فرمائید :
var fs = require("fs");
var data = \'Simply Easy Learning\';
// Create a writable stream
var writerStream = fs.createWriteStream(\'output.txt\');
// Write the data to stream with encoding to be utf8
writerStream.write(data,\'UTF8\');
// Mark the end of file
writerStream.end();
// Handle stream events --> finish, and error
writerStream.on(\'finish\', function() {
console.log("Write completed.");
});
writerStream.on(\'error\', function(err) {
console.log(err.stack);
});
console.log("Program Ended");
COPY
اینک main.js را اعمال فرمائید تا فیض را ملاحظه کنید :
$ node main.js
COPY
خروجی را وریفای نمایید :
Program Ended
Write completed.
COPY
فعلا output.txt تولید گردیده در فهرست فعلی شمارا گشوده نمایید.
بایستی مشمول موردها ذیل باشد :
Simply Easy Learning
COPY
File System
Node پوشه ورودی/خروجی را با استعمال از wrapper های معمولی پیرامون توابع استاندارد POSIX طراحی می نماید.
ماژول Node File System (fs) را می شود به شکل پایین بهره برد :
var fs = require("fs")
COPY
Synchronous در مقابل Asynchronous
هر اسلوب در ماژول fs دارنده انواع synchronous و همینطور asynchronous میباشد.
متدهای asynchronous واپسین پارامتر را تحت عنوان جواب به فراخوانی تابع completion و اولی پارامتر تابع callback را تحت عنوان نادرست در لحاظ میگیرند.
عالی میباشد به مکان شیوه synchronous از یک طریق asynchronous استعمال نمایید، چون اولین هیچوقت طرحی را در زمان اجرای آن block نمی نماید، در حالی که طریق دوم این شغل را می نماید.
var fs = require("fs");
var data = \'\';
// Create a readable stream
var readerStream = fs.createReadStream(\'input.txt\');
// Set the encoding to be utf8.
readerStream.setEncoding(\'UTF8\');
// Handle stream events --> data, end, and error
readerStream.on(\'data\', function(chunk) {
data += chunk;
});
readerStream.on(\'end\',function() {
console.log(data);
});
readerStream.on(\'error\', function(err) {
console.log(err.stack);
});
console.log("Program Ended");
COPY
یک فولدر را بر پایه ی با سینتکس پایین گشوده نمایید :
fs.open(path, flags[, mode], callback)
COPY
پارامتر ها :
path : این حرفه ای میباشد که اسم پوشه مشتمل بر path را داراست.
flags : فلگ ها خلق و خوی فایلی که می بایست گشوده خواهد شد را نشانه میدهد.
mode : وضعیت فولدر را تهیه و تنظیم می نماید، البته تنها درحالتی که که پوشه ساختوساز گردیده باشد. به صورت پیش فرض 0666، قابل تلاوت و تایپ کردن میباشد.
callback : این تابع callback میباشد که دو آرگومان (err, fd) اخذ می نماید.
اخذ داده ها فولدر :
اذن دهید یک فولدر js با اسم main.js با کد ذیل ساختوساز کنیم :
var fs = require("fs");
console.log("Going to get file info!");
fs.stat(\'input.txt\', function (err, stats) {
if (err) {
return console.error(err);
}
console.log(stats);
console.log("Got file info successfully!");
// Check file type
console.log("isFile ? " + stats.isFile());
console.log("isDirectory ? " + stats.isDirectory());
});
COPY
اینک main.js را جاری ساختن فرمایید تا فیض را مشاهده کنید :
$ node main.js
COPY
خروجی را وریفای فرمایید :
Going to get file info!
{
dev: 1792,
mode: 33188,
nlink: 1,
uid: 48,
gid: 48,
rdev: 0,
blksize: 4096,
ino: 4318127,
size: 97,
blocks: 8,
atime: Sun Mar 22 2015 13:40:00 GMT-0500 (CDT),
mtime: Sun Mar 22 2015 13:40:57 GMT-0500 (CDT),
ctime: Sun Mar 22 2015 13:40:57 GMT-0500 (CDT)
}
Got file info successfully!
isFile ? true
isDirectory ? false
COPY
بستن یک پوشه :
fs.close(fd, callback)
COPY
پارامتر ها :
fd : این توصیفگر پوشه میباشد که بوسیله مشی ()fs.open بازگردانده گردیدهاست.
callback : هیچ آرگومان دیگری به جز یک استثنای ممکن برای جواب به تماس تکمیلی داده نشده میباشد.
نمونه :
یک فولدر js با اسم main.js با کد پایین ساخت کنیم :
var fs = require("fs");
var buf = new Buffer(1024);
console.log("Going to open an existing file");
fs.open(\'input.txt\', \'r+\', function(err, fd) {
if (err) {
return console.error(err);
}
console.log("File opened successfully!");
console.log("Going to read the file");
fs.read(fd, buf, 0, buf.length, 0, function(err, bytes) {
if (err) {
console.log(err);
}
// Print only read bytes to avoid junk.
if(bytes > 0) {
console.log(buf.slice(0, bytes).toString());
}
// Close the opened file.
fs.close(fd, function(err) {
if (err) {
console.log(err);
}
console.log("File closed successfully.");
});
});
});
COPY
اینک main.js را اعمال نمایید تا فیض را مشاهده کنید :
$ node main.js
COPY
خروجی را وریفای نمائید :
Going to open an existing file
File opened successfully!
Going to read the file
Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!
File closed successfully.
COPY
delet یک پوشه :
fs.unlink(path, callback)
COPY
نمونه :
یک پوشه js با اسم main.js با کد پایین ساخت کنیم :
var fs = require("fs");
console.log("Going to delete an existing file");
fs.unlink(\'input.txt\', function(err) {
if (err) {
return console.error(err);
}
console.log("File deleted successfully!");
});
COPY
فعلا main.js را ایفا فرمائید تا فیض را ملاحظه کنید :
$ node main.js
COPY
خروجی را وریفای نمایید :
Going to delete an existing file
File deleted successfully!
COPY
ایجاد کرد یک دایرکتوری :
fs.mkdir(path[, mode], callback)
COPY
(mode : این جواز دایرکتوری میباشد که می بایست تهیه خواهد شد. پیش فرض 0777 میباشد.)
نمونه :
یک پوشه js با اسم main.js با کد ذیل ساخت کنیم :
var fs = require("fs");
console.log("Going to create directory /tmp/test");
fs.mkdir(\'/tmp/test\',function(err) {
if (err) {
return console.error(err);
}
console.log("Directory created successfully!");
});
COPY
خروجی را وریفای نمایید :
Going to create directory /tmp/test
Directory created successfully!
COPY
قرائت یک دایرکتوری :
fs.readdir(path, callback)
COPY
حذف یک دایرکتوری :
fs.rmdir(path, callback)
COPY
Global Objects
تابع گلوبال setInterval(cb, ms) برای اجرای مکرر cb بعد از دست کم ms میلی ثانیه به کارگیری می گردد.
مکث حقیقی به عامل ها فرنگی مانند Operating System timer granularity و system load بستگی داراست.
یک زمانسنج نمی تواند بیشتراز 24.8 روز ارتفاع بکشد.
نمونه :
// Let\'s try to print the value of __filename
console.log( __filename );
COPY
خروجی :
$ node main.js
COPY
مطابق جای نرمافزار شما ، اسم پوشه اساسی را به طور ذیل چاپ می نماید :
/web/com/1427091028_21099/main.js
COPY
__dirname
dirname نشانه دهنده اسم دایرکتوری میباشد که اسکریپت در حالا اجرای فعلی در آن جایدارد.
نمونه :
یک پوشه js با اسم main.js با کد تحت ساختوساز نمایید :
// Let\'s try to print the value of __dirname
console.log( __dirname );
COPY
اینک main.js را جاری ساختن فرمایید تا فیض را مشاهده کنید :
$ node main.js
COPY
مطابق جای اپلیکیشن شما، اسم دایرکتوری فعلی را به طور ذیل چاپ می نماید :
/web/com/1427091028_21099
COPY
بستن یک پوشه :
fs.close(fd, callback)
COPY
setTimeout(cb, ms)
نمونه :
function printHello() {
console.log( "Hello, World!");
}
// Now call above function after 2 seconds
setTimeout(printHello, 2000);
COPY
تحقیق نمایید که خروجی بعداز پاره ای تعقل چاپ شدهاست :
Hello, World!
COPY
clearTimeout(t)
نمونه :
function printHello() {
console.log( "Hello, World!");
}
// Now call above function after 2 seconds
var t = setTimeout(printHello, 2000);
// Now clear the timer
clearTimeout(t);
COPY
setInterval(cb, ms)
نمونه :
function printHello() {
console.log( "Hello, World!");
}
// Now call above function after 2 seconds
setInterval(printHello, 2000);
Streams
Streams اشیایی می باشند که به شما قابلیت میدهند اطلاعات را از یک منبع بخوانید یا این که اطلاعات را به یک مقصد بنویسید.
در Node.js ، چهار نوع Stream وجود دارااست :
Readable : استریمی که برای عملیات تلاوت به کار گیری میگردد.
Writable : استریمی که برای عملیات تایپ کردن استعمال میگردد.
Duplex : استریمی که میتواند هم برای عملیات تلاوت و هم برای تایپ کردن مصرف شود.
Transform : یک نوع جریان دوبلکس که در آن خروجی بر طبق ورودی به حساب آوردن میگردد.
هر نوع Stream یک مثال EventEmitter میباشد و تعدادی روی داد را در حینهای گوناگون ارسال مینماید.
data : این روی داد هنگامی فعال میشود که داده ای برای تلاوت در دسترس باشد.
end ؛ این روی داد وقتی فعال میشود که داده دیگری برای تلاوت وجود نداشته باشد.
error : این اتفاق افتاد وقتی فعال میگردد که در اخذ یا این که تایپ کردن اطلاعات خطایی وجود داشته باشد.
finish : این اتفاق افتاد وقتی فعال میگردد که مجموع اطلاعات به سیستم زیرین منتقل شوند.
پیرو برای قرائت و تایپ کردن استریم ها نمونه خوا هیم زد.
قرائت از یک جریان
یک فولدر متنی با اسم input.txt با محتوای پایین ساخت و ساز نمائید :
Manataz provides the most complete and specialized programming services
COPY
یک پوشه js با اسم main.js با کد تحت تولید فرمایید :
var fs = require("fs");
var data = \'\';
// Create a readable stream
var readerStream = fs.createReadStream(\'input.txt\');
// Set the encoding to be utf8.
readerStream.setEncoding(\'UTF8\');
// Handle stream events --> data, end, and error
readerStream.on(\'data\', function(chunk) {
data += chunk;
});
readerStream.on(\'end\',function() {
console.log(data);
});
readerStream.on(\'error\', function(err) {
console.log(err.stack);
});
console.log("Program Ended");
COPY
در حال حاضر main.js را جاری ساختن فرمائید تا فیض را ملاحظه کنید :
$ node main.js
COPY
پذیرش خروجی :
Program Ended
Manataz provides the most complete and specialized programming services
COPY
تایپ کردن Stream
یک پوشه js با اسم main.js با کد تحت تولید فرمائید :
var fs = require("fs");
var data = \'Simply Easy Learning\';
// Create a writable stream
var writerStream = fs.createWriteStream(\'output.txt\');
// Write the data to stream with encoding to be utf8
writerStream.write(data,\'UTF8\');
// Mark the end of file
writerStream.end();
// Handle stream events --> finish, and error
writerStream.on(\'finish\', function() {
console.log("Write completed.");
});
writerStream.on(\'error\', function(err) {
console.log(err.stack);
});
console.log("Program Ended");
COPY
اینک main.js را اعمال فرمائید تا فیض را ملاحظه کنید :
$ node main.js
COPY
خروجی را وریفای نمایید :
Program Ended
Write completed.
COPY
فعلا output.txt تولید گردیده در فهرست فعلی شمارا گشوده نمایید.
بایستی مشمول موردها ذیل باشد :
Simply Easy Learning
COPY
File System
Node پوشه ورودی/خروجی را با استعمال از wrapper های معمولی پیرامون توابع استاندارد POSIX طراحی می نماید.
ماژول Node File System (fs) را می شود به شکل پایین بهره برد :
var fs = require("fs")
COPY
Synchronous در مقابل Asynchronous
هر اسلوب در ماژول fs دارنده انواع synchronous و همینطور asynchronous میباشد.
متدهای asynchronous واپسین پارامتر را تحت عنوان جواب به فراخوانی تابع completion و اولی پارامتر تابع callback را تحت عنوان نادرست در لحاظ میگیرند.
عالی میباشد به مکان شیوه synchronous از یک طریق asynchronous استعمال نمایید، چون اولین هیچوقت طرحی را در زمان اجرای آن block نمی نماید، در حالی که طریق دوم این شغل را می نماید.
var fs = require("fs");
var data = \'\';
// Create a readable stream
var readerStream = fs.createReadStream(\'input.txt\');
// Set the encoding to be utf8.
readerStream.setEncoding(\'UTF8\');
// Handle stream events --> data, end, and error
readerStream.on(\'data\', function(chunk) {
data += chunk;
});
readerStream.on(\'end\',function() {
console.log(data);
});
readerStream.on(\'error\', function(err) {
console.log(err.stack);
});
console.log("Program Ended");
COPY
یک فولدر را بر پایه ی با سینتکس پایین گشوده نمایید :
fs.open(path, flags[, mode], callback)
COPY
پارامتر ها :
path : این حرفه ای میباشد که اسم پوشه مشتمل بر path را داراست.
flags : فلگ ها خلق و خوی فایلی که می بایست گشوده خواهد شد را نشانه میدهد.
mode : وضعیت فولدر را تهیه و تنظیم می نماید، البته تنها درحالتی که که پوشه ساختوساز گردیده باشد. به صورت پیش فرض 0666، قابل تلاوت و تایپ کردن میباشد.
callback : این تابع callback میباشد که دو آرگومان (err, fd) اخذ می نماید.
اخذ داده ها فولدر :
اذن دهید یک فولدر js با اسم main.js با کد ذیل ساختوساز کنیم :
var fs = require("fs");
console.log("Going to get file info!");
fs.stat(\'input.txt\', function (err, stats) {
if (err) {
return console.error(err);
}
console.log(stats);
console.log("Got file info successfully!");
// Check file type
console.log("isFile ? " + stats.isFile());
console.log("isDirectory ? " + stats.isDirectory());
});
COPY
اینک main.js را جاری ساختن فرمایید تا فیض را مشاهده کنید :
$ node main.js
COPY
خروجی را وریفای فرمایید :
Going to get file info!
{
dev: 1792,
mode: 33188,
nlink: 1,
uid: 48,
gid: 48,
rdev: 0,
blksize: 4096,
ino: 4318127,
size: 97,
blocks: 8,
atime: Sun Mar 22 2015 13:40:00 GMT-0500 (CDT),
mtime: Sun Mar 22 2015 13:40:57 GMT-0500 (CDT),
ctime: Sun Mar 22 2015 13:40:57 GMT-0500 (CDT)
}
Got file info successfully!
isFile ? true
isDirectory ? false
COPY
بستن یک پوشه :
fs.close(fd, callback)
COPY
پارامتر ها :
fd : این توصیفگر پوشه میباشد که بوسیله مشی ()fs.open بازگردانده گردیدهاست.
callback : هیچ آرگومان دیگری به جز یک استثنای ممکن برای جواب به تماس تکمیلی داده نشده میباشد.
نمونه :
یک فولدر js با اسم main.js با کد پایین ساخت کنیم :
var fs = require("fs");
var buf = new Buffer(1024);
console.log("Going to open an existing file");
fs.open(\'input.txt\', \'r+\', function(err, fd) {
if (err) {
return console.error(err);
}
console.log("File opened successfully!");
console.log("Going to read the file");
fs.read(fd, buf, 0, buf.length, 0, function(err, bytes) {
if (err) {
console.log(err);
}
// Print only read bytes to avoid junk.
if(bytes > 0) {
console.log(buf.slice(0, bytes).toString());
}
// Close the opened file.
fs.close(fd, function(err) {
if (err) {
console.log(err);
}
console.log("File closed successfully.");
});
});
});
COPY
اینک main.js را اعمال نمایید تا فیض را مشاهده کنید :
$ node main.js
COPY
خروجی را وریفای نمائید :
Going to open an existing file
File opened successfully!
Going to read the file
Tutorials Point is giving self learning content
to teach the world in simple and easy way!!!!!
File closed successfully.
COPY
delet یک پوشه :
fs.unlink(path, callback)
COPY
نمونه :
یک پوشه js با اسم main.js با کد پایین ساخت کنیم :
var fs = require("fs");
console.log("Going to delete an existing file");
fs.unlink(\'input.txt\', function(err) {
if (err) {
return console.error(err);
}
console.log("File deleted successfully!");
});
COPY
فعلا main.js را ایفا فرمائید تا فیض را ملاحظه کنید :
$ node main.js
COPY
خروجی را وریفای نمایید :
Going to delete an existing file
File deleted successfully!
COPY
ایجاد کرد یک دایرکتوری :
fs.mkdir(path[, mode], callback)
COPY
(mode : این جواز دایرکتوری میباشد که می بایست تهیه خواهد شد. پیش فرض 0777 میباشد.)
نمونه :
یک پوشه js با اسم main.js با کد ذیل ساخت کنیم :
var fs = require("fs");
console.log("Going to create directory /tmp/test");
fs.mkdir(\'/tmp/test\',function(err) {
if (err) {
return console.error(err);
}
console.log("Directory created successfully!");
});
COPY
خروجی را وریفای نمایید :
Going to create directory /tmp/test
Directory created successfully!
COPY
قرائت یک دایرکتوری :
fs.readdir(path, callback)
COPY
حذف یک دایرکتوری :
fs.rmdir(path, callback)
COPY
Global Objects
تابع گلوبال setInterval(cb, ms) برای اجرای مکرر cb بعد از دست کم ms میلی ثانیه به کارگیری می گردد.
مکث حقیقی به عامل ها فرنگی مانند Operating System timer granularity و system load بستگی داراست.
یک زمانسنج نمی تواند بیشتراز 24.8 روز ارتفاع بکشد.
نمونه :
// Let\'s try to print the value of __filename
console.log( __filename );
COPY
خروجی :
$ node main.js
COPY
مطابق جای نرمافزار شما ، اسم پوشه اساسی را به طور ذیل چاپ می نماید :
/web/com/1427091028_21099/main.js
COPY
__dirname
dirname نشانه دهنده اسم دایرکتوری میباشد که اسکریپت در حالا اجرای فعلی در آن جایدارد.
نمونه :
یک پوشه js با اسم main.js با کد تحت ساختوساز نمایید :
// Let\'s try to print the value of __dirname
console.log( __dirname );
COPY
اینک main.js را جاری ساختن فرمایید تا فیض را مشاهده کنید :
$ node main.js
COPY
مطابق جای اپلیکیشن شما، اسم دایرکتوری فعلی را به طور ذیل چاپ می نماید :
/web/com/1427091028_21099
COPY
بستن یک پوشه :
fs.close(fd, callback)
COPY
setTimeout(cb, ms)
نمونه :
function printHello() {
console.log( "Hello, World!");
}
// Now call above function after 2 seconds
setTimeout(printHello, 2000);
COPY
تحقیق نمایید که خروجی بعداز پاره ای تعقل چاپ شدهاست :
Hello, World!
COPY
clearTimeout(t)
نمونه :
function printHello() {
console.log( "Hello, World!");
}
// Now call above function after 2 seconds
var t = setTimeout(printHello, 2000);
// Now clear the timer
clearTimeout(t);
COPY
setInterval(cb, ms)
نمونه :
function printHello() {
console.log( "Hello, World!");
}
// Now call above function after 2 seconds
setInterval(printHello, 2000);