Latest web development tutorials

نود.جي إس تيار (تيار)

تيار هو واجهة مجردة، عقدة لديها العديد من الكائنات تنفيذ هذه الواجهة. على سبيل المثال، الخادم الذي بادرت بطلب لكائن طلب HTTP هو تيار، وكذلك المعياري (الإخراج القياسي).

نود.جي إس، تيار وهناك أربعة أنواع من تدفق:

  • قابلة للقراءة - عملية قابلة للقراءة.

  • للكتابة - عمليات الكتابة.

  • دوبلكس - عمليات القراءة والكتابة.

  • تحويل - البيانات التي تعمل على أن تكون مكتوبة وثم تلا النتائج.

كل الكائنات هي حالات EventEmitter تيار. وتتضمن الفعاليات المشتركة:

  • البيانات - اندلعت عندما قراءة البيانات في الوقت.

  • نهاية - من دون التسبب البيانات أكثر قابلية للقراءة.

  • خطأ - اندلعت عندما يحدث خطأ في الاستقبال وعملية الكتابة.

  • النهاية - حرائق عندما تم كتابة كافة البيانات إلى النظام الأساسي.

هذا البرنامج التعليمي سوف أعرض عمليات تيار المشتركة.


قراءة البيانات من تيار

إنشاء ملف input.txt ومن على النحو التالي:

本教程官网地址:www.w3big.com

إنشاء ملف main.js، على النحو التالي:

var fs = require("fs");
var data = '';

// 创建可读流
var readerStream = fs.createReadStream('input.txt');

// 设置编码为 utf8。
readerStream.setEncoding('UTF8');

// 处理流事件 --> 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("程序执行完毕");

يتم تنفيذ التعليمات البرمجية أعلاه كما يلي:

程序执行完毕
本教程官网地址:www.w3big.com

الكتابة تيار

إنشاء ملف main.js، على النحو التالي:

var fs = require("fs");
var data = '本教程官网地址:www.w3big.com';

// 创建一个可以写入的流,写入到文件 output.txt 中
var writerStream = fs.createWriteStream('output.txt');

// 使用 utf8 编码写入数据
writerStream.write(data,'UTF8');

// 标记文件末尾
writerStream.end();

// 处理流事件 --> data, end, and error
writerStream.on('finish', function() {
    console.log("写入完成。");
});

writerStream.on('error', function(err){
   console.log(err.stack);
});

console.log("程序执行完毕");

سوف يتم كتابة بيانات البرنامج أعلاه إلى output.txt ملف البيانات متغير. النتائج بتنفيذ التعليمات البرمجية هي كما يلي:

$ node main.js 
程序执行完毕
写入完成。

Output.txt عرض محتويات الملف:

$ cat output.txt 
本教程官网地址:www.w3big.com

تدفق خط أنابيب

يوفر خط الانابيب آلية لتيار المدخلات تدفق الانتاج. ونحن عادة تستخدم للحصول على البيانات ونقل البيانات إلى تيار آخر من تيار.

كما هو مبين في الصورة أعلاه، قارنا دلو الوثائق مملوءة بالماء، والماء هو محتويات الوثائق، حتى يتسنى لنا ربط دلوين من الماء من دلو في دلو الآخر مع أنبوب (أنبوب)، لذلك أدركت ببطء الملفات الكبيرة عملية النسخ المتماثل.

الأمثلة التالية نريد الكتابة إلى ملف آخر عن طريق قراءة محتويات الملف ومحتوياته.

يقرأ وضع input.txt الوثيقة على النحو التالي:

本教程官网地址:www.w3big.com
管道流操作实例

إنشاء ملف main.js، على النحو التالي:

var fs = require("fs");

// 创建一个可读流
var readerStream = fs.createReadStream('input.txt');

// 创建一个可写流
var writerStream = fs.createWriteStream('output.txt');

// 管道读写操作
// 读取 input.txt 文件内容,并将内容写入到 output.txt 文件中
readerStream.pipe(writerStream);

console.log("程序执行完毕");

النتائج بتنفيذ التعليمات البرمجية هي كما يلي:

$ node main.js 
程序执行完毕

Output.txt عرض محتويات الملف:

$ cat output.txt 
本教程官网地址:www.w3big.com
管道流操作实例

تدفق سلسلة

سلسلة هي ينساب آخر، وخلق تيارات متعددة التشغيل سلسلة آلية من خلال ربط مخرجات. تيار سلسلة تستخدم عادة لتشغيل خط أنابيب.

التالي نحن الأنابيب وسلسلة لضغط وضغط الملفات.

إنشاء ملف compress.js، على النحو التالي:

var fs = require("fs");
var zlib = require('zlib');

// 压缩 input.txt 文件为 input.txt.gz
fs.createReadStream('input.txt')
  .pipe(zlib.createGzip())
  .pipe(fs.createWriteStream('input.txt.gz'));
  
console.log("文件压缩完成。");

النتائج بتنفيذ التعليمات البرمجية هي كما يلي:

$ node compress.js 
文件压缩完成。

بعد تنفيذ العملية المذكورة أعلاه، يمكننا أن نرى الدليل الحالي التي أنشئت في إطار input.txt input.txt.gz ملف مضغوط.

بعد ذلك، دعونا فك الملفات، إنشاء decompress.js الملف، على النحو التالي:

var fs = require("fs");
var zlib = require('zlib');

// 解压 input.txt.gz 文件为 input.txt
fs.createReadStream('input.txt.gz')
  .pipe(zlib.createGunzip())
  .pipe(fs.createWriteStream('input.txt'));
  
console.log("文件解压完成。");

النتائج بتنفيذ التعليمات البرمجية هي كما يلي:

$ node decompress.js 
文件解压完成。