1. Trang chủ
  2. » Thể loại khác

Stream trong Node.js PDF stream trong nodejs

4 181 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 4
Dung lượng 181,84 KB

Nội dung

http://vietjack.com/nodejs/index.jsp                                                                                                              Copyright  ©  vietjack.com     Stream Node.js Stream ? Stream đối tượng cho phép bạn đọc liệu từ nguồn ghi dự liệu đến đích Trong Node.js, có loại Stream • Readable - Là Stream sử dụng hoạt động đọc • Writable - Là Stream sử dụng cho hoạt động ghi • Duplex - Là Stream sử dụng cho mục đích ghi đọc • Transform - Đây kiểu Duplex Stream, khác chỗ kết đầu tính tốn dựa liệu bạn nhập vào Mỗi loại Stream thể đối tượng EventEmitter ném vài kiện thời điểm khác Danh sách sau liệt kê số kiện thường sử dụng: • data - Sự kiện kích hoạt liệu có sẵn cho hoạt động đọc • end - Sự kiện kích hoạt khơng liệu để đọc • error - Sự kiện kích hoạt xảy lỗi việc đọc ghi liệu • finish - Sự kiện kích hoạt tất liệu chuyển hết tới vùng hệ thống sở Phần trình bày chi tiết hoạt động thường sử dụng Stream Đọc liệu từ Stream Node.js Đầu tiên, bạn tạo text file với tên input.txt có nội dung sau: http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí  Page  1   http://vietjack.com/nodejs/index.jsp                                                                                                              Copyright  ©  vietjack.com     VietJack la trang Web huong dan cac bai lap trinh hoan toan mien phi cho tat ca moi nguoi!!!!! Tạo js file có tên main.js Trong file này, bạn khai báo fs Module (đây Module cho hoạt động File I/O) sử dụng phương thức require() Sau sử dụng phương thức createReadStream() nhận tham số tên text file bạn tạo trước để đọc liệu từ var fs = require("fs"); var data = ''; // Tao mot Readable Stream var readerStream = fs.createReadStream('input.txt'); // Thiet lap encoding la utf8 readerStream.setEncoding('UTF8'); // Xu ly cac su kien lien quan toi Stream > data, end, va 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("Ket thuc chuong trinh"); Bây chạy main.js để xem kết quả: $ node main.js Kiểm tra kết đầu ra: Ket thuc chuong trinh VietJack la trang Web huong dan cac bai lap trinh hoan toan mien phi cho tat ca moi nguoi!!!!! Ghi liệu tới Stream Node.js Bạn tạo main.js Khác chỗ thay sử dụng createReadStream(), bạn sử dụng phương thức createWriteStream() nhận tham số file để chứa kết bạn cần ghi: var fs = require("fs"); var data = 'VietNamVoDoi'; // Tao mot Writable Stream var writerStream = fs.createWriteStream('output.txt'); // Ghi du lieu toi Stream theo ma hoa utf8 writerStream.write(data,'UTF8'); // Danh dau diem cuoi cua file (end of file) writerStream.end(); // Xu ly cac su kien lien quan toi Stream > finish, va error writerStream.on('finish', function() { console.log("Ket thuc hoat dong ghi."); }); writerStream.on('error', function(err){ console.log(err.stack); }); console.log("Ket thuc chuong trinh"); Bây chạy main.js để xem kết quả: $ node main.js Kiểm tra kết quả: http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí  Page  1   http://vietjack.com/nodejs/index.jsp                                                                                                              Copyright  ©  vietjack.com     Ket thuc chuong trinh Ket thuc hoat dong ghi Bây giờ, bạn mở output.txt tạo thư mục kiểm tra nội dung kết thu được: VietNamVoDoi Khái niệm Piping Stream Node.js Piping kỹ thuật Với kỹ thuật này, cung cấp kết đầu Stream để làm liệu đầu vào cho Stream khác Khơng có giới hạn hoạt động Piping này, tức trình tiếp tục Để hiểu thêm khái niệm này, bạn theo dõi ví dụ Trong ví dụ này, đọc liệu từ file, sau ghi liệu tới file khác Đầu tiên, bạn tạo js file có tên main.js chẳng hạn Trong file này, bạn sử dụng hai phương thức trình bày createReadStream() createWriteStream() tương ứng để đọc ghi liệu Tiếp đó, sử dụng phương thức pipe() để thực kỹ thuật Piping Stream sau: var fs = require("fs"); // Tao mot Readable Stream var readerStream = fs.createReadStream('input.txt'); // Tao mot Writable Stream var writerStream = fs.createWriteStream('output.txt'); // Piping hoat dong Readable va Writable // Doc du lieu tu input.txt va ghi du lieu toi output.txt readerStream.pipe(writerStream); console.log("Ket thuc chuong trinh"); Chạy main.js để xem kết quả: $ node main.js Kiểm tra kết quả: Ket thuc chuong trinh Mở output.txt tạo thư mục bạn kiểm tra nội dung: VietJack la trang Web huong dan cac bai lap trinh hoan toan mien phi cho tat ca moi nguoi!!!!! http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí  Page  1   http://vietjack.com/nodejs/index.jsp                                                                                                              Copyright  ©  vietjack.com     Khái niệm Chaining Stream Node.js Chaining kỹ thuật để kết nối kết đầu Stream tới Stream khác tạo chuỗi bao gồm nhiều hoạt động Stream Thường sử dụng với hoạt động Piping Ví dụ sau minh họa cách kết hợp hai hoạt động Piping Chaining Đầu tiên nén file, sau giải nén file Tạo main.js Trong file này, cần khai báo zlip Module cung cấp phương thức createGzip() cho hoạt động nén var fs = require("fs"); var zlib = require('zlib'); // Nen input.txt input.txt.gz fs.createReadStream('input.txt') pipe(zlib.createGzip()) pipe(fs.createWriteStream('input.txt.gz')); console.log("File duoc nen cong."); Chạy main.js để xem kết quả: $ node main.js Kiểm tra kết quả: File duoc nen cong Sau kiểm tra, bạn thấy input.txt nén tạo input.txt.gz thư mục Bây giờ, bạn thử giải nén file sử dụng phương thức createGunzip() zlib Module sau: var fs = require("fs"); var zlib = require('zlib'); // Giai nen input.txt.gz input.txt fs.createReadStream('input.txt.gz') pipe(zlib.createGunzip()) pipe(fs.createWriteStream('input.txt')); console.log("Giai nen File cong."); Chạy main.js để xem kết quả: $ node main.js Kiểm tra kết quả: Giai nen File cong http://vietjack.com/                                                                                                                              Trang  chia  sẻ  các  bài  học  online  miễn  phí  Page  1   ... Writable Stream var writerStream = fs.createWriteStream('output.txt'); // Ghi du lieu toi Stream theo ma hoa utf8 writerStream.write(data,'UTF8'); // Danh dau diem cuoi cua file (end of file) writerStream.end();... Tao mot Readable Stream var readerStream = fs.createReadStream('input.txt'); // Thiet lap encoding la utf8 readerStream.setEncoding('UTF8'); // Xu ly cac su kien lien quan toi Stream > data,... createWriteStream() tương ứng để đọc ghi liệu Tiếp đó, sử dụng phương thức pipe() để thực kỹ thuật Piping Stream sau: var fs = require("fs"); // Tao mot Readable Stream var readerStream = fs.createReadStream('input.txt');

Ngày đăng: 02/12/2017, 12:24

TỪ KHÓA LIÊN QUAN