Làm cách nào để đọc các đầu vào liên tiếp với Mô-đun Readline của Node.js?

Lam Cach Nao De Doc Cac Dau Vao Lien Tiep Voi Mo Dun Readline Cua Node Js



Các ' dòng đọc ” Mô-đun Node.js lý tưởng để sử dụng trong các tình huống cần lấy nhiều hơn một đầu vào liên tiếp từ người dùng cuối. Mô-đun này bao bọc đầu ra và đầu vào tiêu chuẩn giúp đọc từng dòng luồng đầu vào mà không bỏ qua bất kỳ dữ liệu nhận được nào. Với sự xuất hiện của “ dòng đọc ”, quy trình truy xuất dữ liệu theo thời gian thực trở nên dễ dàng và nhanh chóng hơn rất nhiều.

Bài viết này giải thích quy trình đọc các đầu vào liên tiếp với mô-đun readline của nodejs.

Làm cách nào để đọc các đầu vào liên tiếp với Mô-đun Readline của Node.js?

Đầu vào liên tiếp là đầu vào nhận và lưu trữ câu trả lời cho nhiều câu hỏi cùng lúc một cách tuần tự. Những truy vấn liên tiếp này chủ yếu được hỏi khi tham gia một số khóa học hoặc tại thời điểm xác minh. Một số ví dụ được nêu bên dưới để triển khai đọc các đầu vào liên tiếp bằng mô-đun readline của Node.js.







Ví dụ 1: Đọc các đầu vào liên tiếp bằng cách sử dụng mô-đun và mảng Readline

Trong ví dụ này, các đầu vào liên tiếp được lấy và đọc bằng cách sử dụng “ dòng đọc ” mô-đun. Các đầu vào được lưu trữ trong mảng từ nơi chúng được hiển thị trên bảng điều khiển:



hằng số dòng đọc = yêu cầu ( 'dòng đọc' ) ;

hằng số giao diện readline = readline. tạoGiao diện ( {

đầu vào : quá trình. stdin ,

đầu ra : quá trình. thiết bị xuất chuẩn

} )

hằng số yêu cầu0 = 'Có thể! Tôi biết biệt danh của bạn?' ;

hằng số yêu cầu1 = 'Sở thích của bạn là gì' ;

hằng số yêu cầu2 = 'Bạn thích nghe gì' ;

hằng số yêu cầu3 = 'Có thể! Tôi biết món ăn yêu thích của bạn?' ;

hằng số yêu cầu4 = 'Bạn sống ở đâu?' ;

hằng số yêu cầu5 = 'Màu sắc ưa thích của bạn là gì' ;

hằng số yêu cầu6 = 'Ai là người bạn thân nhất của bạn' ;

hằng số reqArr = [ req0, req1, req2, req3, req4, req5, req6 ] ;

hãy giải quyết = '' ;

hằng số dữ liệu yêu cầu = x => {

nếu như ( x < reqArr. chiều dài ) {

readlineInterface. câu hỏi ( reqArr [ x ] , ( yêu cầuPhản hồi ) => {

độ phân giải += ' \N ' + yêu cầuPhản hồi ;

dữ liệu yêu cầu ( x + 1 ) ;

} ) ;

} khác {

bảng điều khiển. nhật ký ( '' Cảm ơn chia sẻ với tôi ! $ { độ phân giải } ` ) ;

readlineInterface. đóng ( ) ;

}

} ;

dữ liệu yêu cầu ( 0 ) ;

Mô tả mã được sử dụng trong đoạn mã trên được nêu dưới đây:



  • Bắt đầu bằng cách nhập “ dòng đọc ” mô-đun và lưu trữ đối tượng của nó trong một biến có tên “ dòng đọc ”.
  • Tiếp theo, tạo một giao diện có tên “ giao diện readline ' cho ' dòng đọc ” đối tượng bao bọc quá trình đầu vào và đầu ra tiêu chuẩn bằng cách sử dụng “ createInterface() ' phương pháp. Nó cũng liên kết mọi yêu cầu và phản hồi với một luồng đầu vào có thể đọc được và đầu ra có thể ghi bằng cách sử dụng “ quá trình ' tài sản.
  • Sau đó, tạo bảy “ hằng số ” gõ biến để lưu trữ một số yêu cầu hoặc câu hỏi cần được hỏi liên tiếp. Lưu trữ các hằng số này trong một mảng có tên là “ reqArr ”.
  • Tạo một biến trống mới “ độ phân giải ”, định nghĩa một hàm mũi tên có tên “ dữ liệu yêu cầu ” và truyền tham số duy nhất của “ x ”.
  • Bên trong chức năng này, hãy sử dụng “ nếu như ” câu lệnh kiểm tra xem giá trị của tham số được cung cấp có nhỏ hơn độ dài của “ reqArr ' hay không.
  • Trong trường hợp đúng, “ câu hỏi() Phương thức ” được áp dụng cho giao diện và nó hiển thị tuần tự từng yêu cầu từ mảng trên đầu ra. Sau đó, nó chuyển các giá trị được cung cấp tương ứng của chúng làm đối số.
  • Các đối số này được lưu trữ trong mảng đã được tạo “ độ phân giải ”.
  • Khi tất cả các yêu cầu được hiển thị tuần tự trên bảng điều khiển thì điều kiện “ nếu như ” câu lệnh trở thành sai và trong phần “ khác “ một phần, phần “ độ phân giải ” mảng được hiển thị trên bảng điều khiển.
  • Cuối cùng, giao diện readline cũng bị đóng bằng cách gọi “ đóng() ' phương pháp. Ngoài ra, hãy gọi “ reqData() ” hoạt động và truyền giá trị ban đầu của “ 0 ” để bắt đầu câu hỏi từ đầu hoặc từ câu hỏi đầu tiên có trong mảng.

Bây giờ, hãy thực thi tệp chứa tệp này bằng cách nhập vào “ nút ” từ khóa đằng sau “ tên tập tin ” trên thiết bị đầu cuối:





nút ghi

Kết quả đầu ra cho thấy chương trình đã đọc các đầu vào liên tiếp và trả về tất cả chúng cùng một lúc:

Ví dụ 2: Đọc các đầu vào liên tiếp bằng mô-đun Readline và hàm đệ quy

Trong phương pháp này, cách tiếp cận đệ quy được sử dụng với “ dòng đọc ” Mô-đun Node.js để đọc các đầu vào liên tiếp từ người dùng trên luồng đầu vào:



hằng số đọc = yêu cầu ( 'dòng đọc' ) ;
hằng số giao diện readline = đọc. tạoGiao diện ( {
đầu vào : quá trình. stdin ,
đầu ra : quá trình. thiết bị xuất chuẩn
} )
là reqArr = [ ]
hàm reqData ( x ) {
nếu như ( x > 3 )
{
trung bình var = 0
( j trong reqArr )
{
trung bình += Con số ( reqArr [ j ] )
}
bảng điều khiển. nhật ký ( trung bình / 3 ) ;
}
khác
{
readlineInterface. câu hỏi ( 'Nhập' + x + ' số trên 3:' , chức năng ( yêu cầuPhản hồi ) {
reqArr. ( yêu cầuPhản hồi )
dữ liệu yêu cầu ( x + 1 )
} )
}
}

dữ liệu yêu cầu ( 1 ) ;

Giải thích cho đoạn mã trên được mô tả bên dưới dưới dạng dấu đầu dòng:

  • Đầu tiên, nhập “ dòng đọc ” trong một mới được tạo ra “ viết.js ” tập tin và lưu trữ đối tượng phương thức trong một “ đọc ' Biến đổi. Tạo một giao diện lưu trữ “ dòng đọc ” giao diện được tạo thông qua “ createInterface() ' phương pháp.
  • Bây giờ, tạo một mảng trống có tên “ reqArr ” và xác định “ reqData() ” cũng chấp nhận một tham số duy nhất có tên là “ x ”.
  • Trước tiên, hàm này sẽ kiểm tra xem giá trị được cung cấp có lớn hơn “ 3 ' hay không. Trong trường hợp đúng, các giá trị được truy xuất trong phần “ x ” biến được lưu trữ trong một mảng và được thêm vào một biến duy nhất có tên “ trung bình ”.
  • Sau đó, “ trung bình ” biến được chia cho “ 3 ” để tìm giá trị trung bình khi độ dài của số lớn nhất cho phép là “ 3 ” và kết quả được hiển thị trên bảng điều khiển.
  • Ở phần khác, “ câu hỏi() ” Phương thức được đính kèm với giao diện “ readlineInerface ”. Phương thức này hiển thị thông báo trên bảng điều khiển và xác định hàm ẩn danh.
  • Hàm nhận dữ liệu đầu vào của người dùng và thêm dữ liệu đó vào mảng “ reqArr ”. Nó cũng cập nhật giá trị của “ x ” mỗi lần và chuyển giá trị được cập nhật tới “ reqData() ' chức năng. Điều này sẽ đảm bảo rằng người dùng chỉ nhập các giá trị nhỏ hơn ba bắt đầu từ “ 0 ”. Cuối cùng, gọi “ reqData() ” để bắt đầu quá trình thực thi.

Bây giờ, hãy thực thi lệnh này có chứa “ viết.js ” tập tin bằng cách nhập vào “ nút ” từ khóa đằng sau “ tên tập tin ” trên thiết bị đầu cuối:

nút ghi

Đầu ra xác nhận rằng các đầu vào liên tiếp đã được đọc và mức trung bình của chúng được hiển thị trên bảng điều khiển bằng cách sử dụng kết hợp phương pháp đệ quy và mô-đun readline:

Hướng dẫn này giải thích quy trình đọc các đầu vào liên tiếp bằng mô-đun readline của Node.js.

Phần kết luận

Để đọc các đầu vào liên tiếp bằng mô-đun readline Node.js, trước tiên hãy nhập mô-đun này vào một tệp đang hoạt động và tạo giao diện bằng cách sử dụng “ createInterface() ' phương pháp. Giao diện này gọi “ câu hỏi() ' phương pháp. Nó gửi các yêu cầu tới người dùng một cách liên tục và chuyển các phản hồi tương ứng của từng yêu cầu tới hàm callback để áp dụng một số thao tác theo yêu cầu. Bạn đã học được quy trình đọc các đầu vào liên tiếp bằng mô-đun readline.