Node.js: Các đối tượng global
Các đối tượng global (toàn cục) của Node.js có bản chất toàn cầu và chúng có sẵn trong tất cả các mô-đun. Vậy nên, ta không cần đưa các đối tượng này vào ứng dụng của mình, mà thay vào đó ta có thể sử dụng chúng một cách trực tiếp. Các đối tượng này là các mô-đun, hàm, chuỗi và bản thân đối tượng như được giải thích bên dưới đây.
__filename
__filename đại diện cho tên tập tin của mã được thực thi. Đây là đường dẫn tuyệt đối đã giải quyết của tệp mã này. Đối với một chương trình chính, đây không nhất thiết phải là cùng một tên tệp được sử dụng trong dòng lệnh. Giá trị bên trong một mô-đun là đường dẫn đến tệp mô-đun đó.
Ví dụ
Tạo tệp js có tên demo_filename.js với mã sau:
// in ra giá trị của __filename:
console.log( __filename );
Thực thi:
C:\Users\Your name\demo_filename.js
Kết quả:
C:\Users\LongDT\nodejs\demo_filename.js
__dirname
__dirname đại diện cho tên của thư mục chứa file Node.js.
Ví dụ
Tạo tệp js có tên demo_dirname.js với mã sau:
// in ra giá trị của __dirname:
console.log(__dirname );
Thực thi:
C:\Users\Your name\demo_filename.js
Kết quả:
C:\Users\Your name
setTimeout(cb, ms)
Hàm toàn cục setTimeout(cb, ms) được sử dụng để chạy lệnh gọi lại cb sau ít nhất ms mili giây. Độ trễ thực tế phụ thuộc vào các yếu tố bên ngoài như mức độ chi tiết của bộ hẹn giờ của hệ điều hành và tải hệ thống. Bộ hẹn giờ không được kéo dài hơn 24,8 ngày.
Hàm này trả về một giá trị mờ đại diện cho bộ đếm thời gian có thể được sử dụng để xóa bộ đếm thời gian.
Ví dụ
Tạo tệp js có tên demo_settimeout.js chứa mã sau:
function printHello() { console.log( "Hello Node.js!"); } // gọi hàm trên sau 2 giây: setTimeout(printHello, 2000);
Thực thi:
C:\Users\Your name\demo_settimeout.js
Kết quả sau 2 giây chờ:
Hello Node.js!
clearTimeout(t)
Hàm toàn cục clearTimeout(t) được sử dụng để dừng bộ đếm thời gian đã được tạo trước đó với setTimeout(). Ở đây t là bộ đếm thời gian được trả về bởi hàm setTimeout().
Thí dụ
Tạo tệp js có tên demo_cleartimeout.js với mã sau:
function printHello() { console.log( "Hello, World!"); } // gọi hàm trên sau 2 giây: var t = setTimeout(printHello, 2000); // xóa bộ đếm thời gian t ở trên: clearTimeout(t);
Thực thi:
C:\Users\Your name\demo_settimeout.js
Kết quả sau 2 giây chờ là không có gì được in ra.
setInterval(cb, ms)
Hàm toàn cục setInterval(cb, ms) được sử dụng để chạy callback cb lặp đi lặp lại sau ít nhất ms mili giây. Độ trễ thực tế phụ thuộc vào các yếu tố bên ngoài như mức độ chi tiết của bộ hẹn giờ hệ điều hành và tải hệ thống. Bộ hẹn giờ không được kéo dài hơn 24,8 ngày.
Hàm này trả về một giá trị mờ đại diện cho bộ đếm thời gian có thể được sử dụng để xóa bộ định thời bằng hàm clearInterval(t).
Thí dụ
Tạo tệp js có tên demo_setinterval.js với mã sau:
function printHello() { console.log("Hello Node.js!"); } // gọi hàm trên sau 2 giây: setInterval(printHello, 2000);
Thực thi:
C:\Users\Your name\demo_setinterval.js
Kết quả là cứ sau 2 giây thì lại in ra chuỗi "Hello Node.js!".
Chương trình trên sẽ thực thi printHello () sau mỗi 2 giây. Do giới hạn của hệ thống.
Các đối tượng global
Bảng sau cung cấp danh sách các đối tượng khác mà ta sử dụng thường xuyên trong các ứng dụng. Để biết thêm chi tiết, bạn có thể tham khảo tài liệu chính thức.
Tên đối tượng và mô tả |
---|
Dùng để in thông tin trên stdout và stderr. |
Được sử dụng để lấy thông tin về quy trình hiện tại. Cung cấp nhiều sự kiện liên quan đến các hoạt động của quy trình. |