REPL là từ viết tắt của Read Eval Print Loop (hiểu nôm na là: Đọc - Đánh giá - In - Lặp) và nó biểu diễn môi trường máy tính như màn hình console trong Linux shell nơi bạn có thể gõ các dòng lệnh và hệ thống sẽ trả về các kết quả.
Node.js cũng có môi trường REPL. Nó để thực hiện các tác vụ mong muốn:
Read: Đọc các thông tin input của người dùng, chuyển đổi thành các dữ liệu Javascript và lưu trữ trong bộ nhớ.
Eval: Đánh giá các cấu trúc dữ liệu này.
Print: In các kết quả.
Loop: Lặp các dòng lệnh đến khi người dùng gõ ctrl-c hai lần.
Đặc tính REPL của Node js rất hữu ích khi bạn sử dụng Node.js với mục đích debug code.
Làm việc với REPL trong Node.js
REPL có thể bắt đầu bằng cách đơn giản trên màn hình shell/console mà không sử dụng bất cứ tham số nào như sau:
Bạn sẽ thấy màn hình dòng nhắc lệnh REPL >. Tại đây, bạn có thể gõ bất cứ lệnh nào trong Node.js.
Các biểu thức đơn giản trong Node.js
Dưới đây mình giới thiệu một số biểu thức đơn giản có thể được sử dụng tại dòng nhắc lệnh REPL trong Node.js:
$ node> 1 + 34> 1 + ( 2 * 3 ) - 43>
Sử dụng biến trong Node.js
Bạn có thể sử dụng các biến để lưu trữ giá trị và sau đó in giá trị của biến giống như trong các đoạn mã truyền thống. Nếu không sử dụng từ khóa var, giá trị sẽ được lưu trữ trong biến và in ra. Trong khi đó nếu từ khóa var được sử dụng, giá trị được lưu trữ và có thể không được in. Bạn có thể in biến sử dụng console.log().
$ node
> x = 10
10
> var y = 10
undefined
> x + y
20
> console.log("Hello World")
Hello World
undefined
Biểu thức trên nhiều dòng trong Node.js
Node REPL hỗ trợ dạng biểu thức nằm trên nhiều dòng tương tự như trong Javascript. Cùng kiểm tra biểu thức do-while trong hành động sau đây:
$ node
> var x = 0
undefined
> do {
... x++;
... console.log("x: " + x);
... }
while ( x < 5 );
x: 1
x: 2
x: 3
x: 4
x: 5
undefined
>
Các dấu gạch chấm ... hiển thị tự động khi bạn nhấn phím Enter sau dấu ngoặc mở. Node.js sẽ tự động kiểm tra xem biểu thức có được tiếp tục nữa hay không.
Biến có dấu gạch chân trong Node.js
Bạn có thể sử dụng dấu gạch dưới _ để nhận kết quả cuối cùng của phép tính:
$ node
> var x = 10
undefined
> var y = 20
undefined
> x + y
30
> var sum = _
undefined
> console.log(sum)
30
undefined
>
Giới thiệu một số lệnh REPL trong Node.js
ctrl + c - Kết thúc lệnh hiện tại.
Nhấn ctrl + c hai lần - Kết thúc Node REPL.
ctrl + d - Kết thúc Node REPL.
Các phím mũi tên Up/Down - Xem lịch sử các lệnh, kiểm tra lệnh trước đó và có thể sửa đổi các lệnh đã soạn trước đó.
Phím tab - Danh sách các lệnh hiện tại.
.help - Danh sách tất cả các lệnh.
.break - Thoát khỏi một biểu thức nằm trên nhiều dòng (ví dụ: do-while).
.clear - Thoát khỏi một biểu thức nằm trên nhiều dòng
.save ten_file - Lưu phiên làm việc của Node.js REPL hiện tại vào một ten_file nào đó.
.load ten_file - Tải nội dung của ten_file của phiên làm việc Node.js REPL hiện tại.
Kết thúc REPL trong Node.js
Như đã đề cập bên trên, bạn cần nhấn ctr + c 2 lần để kết thúc Node.js REPL.
$ node
>
(^C again to quit)
>