Làm cách nào để sử dụng các luồng có thể đọc được trong Node.js?

Lam Cach Nao De Su Dung Cac Luong Co The Doc Duoc Trong Node Js



Dữ liệu được truyền qua mạng giữa bên gửi hoặc nguồn và bên đích hoặc bên nhận dưới dạng luồng. Các luồng này có thể được tạo và kết hợp bằng cách sử dụng một số phương pháp và các tệp âm thanh hoặc video cũng có thể được truyền qua luồng. Dữ liệu đã đọc có thể được chèn vào các tệp được nhắm mục tiêu khác bằng cách sử dụng “ viết() ' Và ' xô() ” cũng như các phương pháp.

Hướng dẫn này sẽ giải thích cách sử dụng các luồng có thể đọc được trong Node.js.

Làm cách nào để sử dụng các luồng có thể đọc được trong Node.js?

Các ' Có thể đọc được ” luồng được tạo bằng cách gọi “ createReadStream() ” và dữ liệu đã đọc sau đó có thể được hiển thị trên trang web bằng cách tạo máy chủ cục bộ. Người nghe sự kiện với sự trợ giúp của “ TRÊN() ” cũng có thể được gắn vào các luồng có thể đọc được để hiển thị thông báo hoặc thực hiện các hành động cụ thể khi quá trình đọc tệp bắt đầu hoặc kết thúc.







Hãy xem qua ví dụ để minh họa thực tế.



Ví dụ: Đọc và hiển thị nội dung trên máy chủ bằng các luồng có thể đọc được

Trong ví dụ này, nội dung của tệp được cung cấp đang được đọc và sau đó hiển thị trên trình duyệt web:



hằng số fsObj = yêu cầu ( 'fs' ) ;

hằng số httpObj = yêu cầu ( 'http' ) ;

hằng số Máy chủ cục bộ = httpObj. máy chủ tạo ( ( yêu cầu, phản hồi ) => {

thử {
// Tệp được nhắm mục tiêu để đọc
hằng số dòng dữ liệu = fsObj. tạoReadStream ( 'usecase.txt' ) ;
// Dẫn file tới phản hồi
dòng dữ liệu. đường ống ( phản ứng ) ;
} nắm lấy ( lỗi ) {
bảng điều khiển. lỗi ( lỗi ) ;
}
} ) ;

Máy chủ cục bộ. Nghe ( 8080 , ( ) => {
bảng điều khiển. nhật ký ( 'Máy chủ đang chạy trên số cổng Localhost: '8080' ' )
} ) ;

Mô tả của đoạn mã trên như sau:





  • Đầu tiên, nhập yêu cầu “ fs ' Và ' http ” mô-đun và lưu trữ các đối tượng của chúng trong “ fsObj ' Và ' httpObj ” các biến tương ứng.
  • Tiếp theo, máy chủ đã được tạo bằng cách gọi “ createServer() ” và lưu trữ máy chủ mới được tạo này trong một “ Máy chủ cục bộ ' Biến đổi.
  • Sau đó, sử dụng dấu “ thử ” chặn bên trong hàm gọi lại phương thức và gọi “ createReadStream() ” phương pháp sử dụng “ fsObj ' Biến đổi.
  • Truyền nội dung tệp được nhắm mục tiêu cần đọc bên trong dấu ngoặc đơn của phương thức này và lưu kết quả vào phần “ dòng dữ liệu ' Biến đổi.
  • Chèn “ dòng dữ liệu ” biến thành “ .đường ống() ” phương thức gửi phản hồi.
  • Hãy sử dụng “ nắm lấy ” khối để xử lý bất kỳ lỗi nào xảy ra.
  • Cuối cùng, lắng nghe hoặc thiết lập máy chủ qua số cổng “ 8080 ” và hiển thị thông báo thành công với sự trợ giúp của chức năng gọi lại.

Thực thi tệp chứa (controlFlow.js) của đoạn mã trên thông qua lệnh nêu dưới đây:

luồng điều khiển nút. js

Đầu ra được tạo ra cho thấy rằng với sự trợ giúp của “ .đường ống() ' Và ' Luồng có thể đọc được ”, dữ liệu tệp đã được đọc và gửi đến luồng đích để hiển thị trên trang web:



Ví dụ 2: Đọc tệp tĩnh cục bộ bằng ReadStream

Trong trường hợp này, tệp được cung cấp qua luồng được chọn và nội dung của nó sau đó được hiển thị trên cửa sổ bảng điều khiển với sự trợ giúp của trình xử lý sự kiện:

hằng số fsObj = yêu cầu ( 'fs' ) ;

hằng số luồngObj = fsObj. tạoReadStream ( 'usecase.txt' ) ;

luồngObj. TRÊN ( 'dữ liệu' , ( nội dung ) => {

bảng điều khiển. nhật ký ( nội dung. toString ( ) ) ;

} ) ;

luồngObj. TRÊN ( 'kết thúc' , ( ) => {

bảng điều khiển. nhật ký ( ' \N Đã đọc xong tập tin.' ) ;

} ) ;

luồngObj. đường ống ( quá trình. thiết bị xuất chuẩn ) ;

Mô tả của đoạn mã trên như sau:

  • Đầu tiên ' fs ” mô-đun được nhập và đối tượng của nó được lưu trữ trong “ fsObj ' Biến đổi.
  • Tiếp theo, sử dụng “ fsObj ” gọi “ createReadStream() ” và chuyển đường dẫn của tệp mục tiêu có nội dung cần được truy xuất. Lưu kết quả của phương thức vào một biến mới “ luồngObj ”.
  • Đính kèm “ TRÊN() ” với “streamObj” sẽ gọi hàm gọi lại khi “ dữ liệu ” được lấy ra. Dữ liệu đã truy xuất được chuyển dưới dạng tham số cho hàm gọi lại để chuyển đổi dữ liệu sang định dạng Chuỗi và hiển thị trên bảng điều khiển.
  • Một lần nữa đính kèm “ TRÊN() ” phương pháp với “ luồngObj ” và lần này chức năng gọi lại của nó hiển thị thông báo kết thúc khi quá trình đọc tệp hoàn tất.

Đầu ra được tạo sau khi thực thi đoạn mã trên cho thấy dữ liệu đọc dọc theo thông báo kết thúc đã được hiển thị trên bảng điều khiển:

Đó là tất cả về việc sử dụng các luồng có thể đọc được trong Node.js.

Phần kết luận

Để làm việc với các luồng có thể đọc được trong Node.js, phương thức “ createReadStream() ” được gọi thông qua “ fs ” đối tượng mô-đun. Sau đó, đường dẫn tệp được nhắm mục tiêu mà nội dung cần được ghi sẽ được chuyển dưới dạng tham số phương thức. Nó có thể được sử dụng với “ .đường ống() ” để thực hiện các tác vụ tiếp theo đối với dữ liệu được truy xuất như ghi nội dung vào một tệp khác. Bài đăng này đã minh họa quy trình làm việc với các luồng có thể đọc được.