Đối tượng toàn cục trong Node.js



Khái niệm Toàn cục (Global) tức là mọi thứ đều có quyền truy cập đến. Trong Node.js cũng vậy, các đối tượng toàn cục là có sẵn cho tất cả Module. Chúng ta không cần khai báo hay import chúng bởi phương thức require() mà vẫn có thể sử dụng chúng một cách trực tiếp. Các đối tượng này có thể là các Module, các hàm, các chuỗi hoặc các đối tượng.

__filename trong Node.js

Trong Node.js, __filename biểu diễn tên file của đoạn code đang được thực thi. Đây là đường dẫn tuyệt đối tới file chứa phần code này.

Ví dụ

Để minh họa cho _filenam trong Node.js, bạn tạo main.js có nội dung đơn giản sau:

// In gia tri cua __filename trong Node.js

console.log( __filename );

Chạy main.js để xem kết quả:

$ node main.js

Kết quả in ra chính là đường dẫn tới main.js chứa đoạn code trên:

/web/com/1427091028_21099/main.js

__dirname trong Node.js

Trong Node.js, __dirname biểu diễn thư mục chứa đoạn code mà đang được thực thi.

Ví dụ

Để minh họa cho việc lấy thông tin của _dirname trong Node.js, bạn tạo main.js chứa đoạn code đơn giản sau:

// In gia tri cua __dirname trong Node.js

console.log( __dirname );

Chạy main.js để xem kết quả::

$ node main.js

Kết quả in ra là thư mục hiện tại chứa main.js:

/web/com/1427091028_21099

Hàm setTimeout(cb, ms) trong Node.js

Hàm toàn cục setTimeout(cb, ms) được sử dụng để chạy hàm callback có tên là cb sau một khoảng thời gian ms milisecond.

Hàm toàn cục này trả về một giá trị biểu diễn Timer để có thể được xóa bởi 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 main.js có nội dung như sau:

function printHello(){
   console.log( "Hello World!");
}
// Bay gio goi ham printHello sau 2 giay
setTimeout(printHello, 2000);

Chạy main.js để xem kết quả::

$ node main.js

Kết quả sẽ hiện ra sau khoảng 2s. Khoảng thời gian này có thể lâu hơn 2s bởi vì thời gian delay còn bị ảnh hưởng bởi 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 sử dụng để dừng một Timer đã được tạo bởi hàm setTimeout() trước đó. Tham số t chính là Timer được trả về từ hàm setTimeout().

Ví dụ

Để xóa Timer đã được thiết lập trước đó, bạn tạo main.js có nội dung đơn giản như sau. Trước tiên, chúng ta thiết lập Timer bởi hàm setTimeout(), sau đó sử dụng hàm clearTimeout() để xóa giá trị này:

function 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 main.js để xem kết quả::

$ node main.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 sử dụng để chạy hàm callback có tên là cb một cách lặp đi lặp lại sau một khoảng thời gian ms millisecond.

Hàm toàn cục này trả về một giá trị biểu diễn Timer để có thể được xóa bởi hàm clearInterval(t).

Ví dụ

Để thấy cách sử dụng của hàm setInterval() trong Node.js, bạn tạo main.js có nội dung đơn giản sau:

function printHello(){
   console.log( "Hello World!");
}
// Bay gio, chung ta goi ham pringtHello sau 2 giay
setInterval(printHello, 2000);

Chạy main.js để xem kết quả::

$ node main.js

Chương trình trên sẽ thực thi hàm printHello() sau mỗi 2 s.

Một số đố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 bao gồm một số đối tượng toàn cục khác. Bạn theo link sau để tìm hiểu chi tiết:

SttĐối tượng & Miêu tả
1Đối tượng Console
Được sử dụng để in thông tin trên stdout và stderr.
2Đối tượng Process
Được sử dụng để lấy thông tin về tiến trình hiện tại.

Loạt bài hướng dẫn học NodeJS cơ bản và nâng cao của chúng tôi dựa trên nguồn tài liệu của: Tutorialspoint và W3Schools

Follow fanpage của team https://www.facebook.com/vietjackteam/ hoặc facebook cá nhân Nguyễn Thanh Tuyền https://www.facebook.com/tuyen.vietjack để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.

Các bài học NodeJS phổ biến khác tại VietJack: