Phần 11: NodeJS – Biến toàn cục – NodeJS căn bản cho người mới bắt đầu

Khái niệm Toàn cục (Global) tức là toàn bộ mọi thứ đều có quyền truy cập tới. Trong Node.jscũng thế, những đối tượng toàn cục là có sẵn cho toàn bộ Module. Chúng ta không cần khai báo hay import chúng do phương thức require() mà vẫn sử dụng chúng 1 cách trực tiếp. Những đối tượng này có thể là các Module, các hàm, các chuỗi hay những đối tượng.
Table of Contents
__filename trong Node.js
Trong Node.js, __filename biểu diễn tên file của đoạn mã đang được thực thi. Đây chính là link tuyệt đối đến file chứa phần code này.
Ví dụ
Để minh họa cho _filenam trong Node.js, bạn tạo essential.js có nội dung đơn giản sau:
Live Demo
// In giá trị __filename
console.log( __filename );
Chạy essential.js để xem kết quả:
$ node essential.js
Kết quả in ra là link đến essential.js chứa đoạn mã trên:
/internet/com/1427091028_21099/essential.js
__dirname trong Node.js
Trong Node.js, __dirname biểu diễn folder chứa đoạn mã mà đang được thực thi.
Ví dụ
Để minh họa đối với việc lấy thông tin của _dirname trong Node.js, bạn tạo essential.js chứa đoạn mã đơn giản sau:
// In gia tri cua __dirname trong Node.js console.log( __dirname );
Chạy essential.js để xem kết quả::
$ node essential.js
Kết quả in ra là folder hiện giờ chứa essential.js:
/internet/com/1427091028_21099
Hàm setTimeout(cb, ms) trong Node.js
Hàm toàn cục setTimeout(cb, ms) được dùng để chạy hàm callback có tên là cb sau 1 khoảng thời gian ms milisecond.
Hàm toàn cục này trả về 1 giá trị biểu diễn Timer để được xóa do hàm clearTimeout().
Ví dụ
Để minh họa cách sử dụng của hàm setTimeout() trong Node.js, bạn tạo essential.js có nội dung như dưới đây:
perform printHello(){ console.log( "Hello World!"); } // Bay gio goi ham printHello sau 2 giay setTimeout(printHello, 2000);
Chạy essential.js để xem kết quả::
$ node essential.js
Kết quả sẽ xuất hiện sau khoảng 2s. Khoảng thời gian này có thể lâu hơn 2s bởi thời gian delay còn bị ảnh hưởng do các yếu tố bên ngoài như OS Timer:
Hello World!
Hàm clearTimeout(t) trong Node.js
Hàm toàn cục clearTimeout( t ) được dùng để dừng 1 Timer được tạo do hàm setTimeout() trước đây. Tham số t là Timer được trả về từ hàm setTimeout().
Ví dụ
Để xóa Timer được thiết lập trước đây, bạn tạo essential.js có nội dung đơn giản như dưới đây. Trước tiên, ta thiết lập Timer do hàm setTimeout(), rồi sử dụng hàm clearTimeout() để xóa giá trị này:
perform printHello(){ console.log( "Hello World!"); } // Bay gio goi ham printHello sau 2 giay var t = setTimeout(printHello, 2000); // Bay gio xoa Timer da duoc thiet lap o tren clearTimeout(t);
Chạy essential.js để xem kết quả::
$ node essential.js
Trên terminal sẽ không hiển thị kết quả gì.
Hàm setInterval(cb, ms) trong Node.js
Hàm toàn cục setInterval(cb, ms) được dùng để chạy hàm callback có tên là cb 1 cách lặp đi lặp lại sau 1 khoảng thời gian ms millisecond.
Hàm toàn cục này trả về 1 giá trị biểu diễn Timer để được xóa do hàm clearInterval(t).
Ví dụ
Để có thể thấy cách sử dụng của hàm setInterval() trong Node.js, bạn tạo essential.js có nội dung đơn giản sau:
perform printHello(){ console.log( "Hello World!"); } // Bay gio, chung ta goi ham pringtHello sau 2 giay setInterval(printHello, 2000);
Chạy essential.js để xem kết quả::
$ node essential.js
Chương trình trên sẽ thực thi hàm printHello() sau mỗi 2 s.
Những đối tượng toàn cục trong Node.js
Ngoài các thuộc tính và hàm toàn cục trên, Node.js còn gồm những đối tượng toàn cục khác. Bạn theo hyperlink sau để xem chi tiết:
Đối tượng Console : Được dùng để in thông tin trên stdout và stderr.
Đối tượng Process : Được dùng để lấy thông tin về tiến trình hiện giờ.