Hướng dẫn biến trong nodejs

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.jscũ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:

Live Demo
// In giá trị __filename

console.log( __filename );

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

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ả::

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ả::

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:

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ả::

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ả::

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:

Đối tượng Console : Được sử dụng để in thông tin trên stdout và stderr.

Đối tượng Process : Được sử dụng để lấy thông tin về tiến trình hiện tại.

Phần 1: Biến, Hàm, Kiểu dữ liệu trong Node.JS

Do được viết dựa trên JavaScrpit nên rất nhiều tình năng của Node.js được kế thừa từ JavaScript.

Khai báo biến

Có 2 cách khai báo biến trong Node.JS.

Cách 1: Khai báo dùng từ khóa var

var a = 10;
var b = 20;

console.log( a + b ); //Kết quả: 30

Cách 2: Khai báo không cần dùng từ khóa.

a = 15;
b = 25;

console.log( a + b );//Kết quả: 40

Một ví dụ khác:

var a = "Hello";
var b = "World";

var x = 10;
var y = "node.JS"

console.log( a + b ); //Kết quả: HelloWorld
console.log( x + y ); //Kết quả: 10node.JS

Để convert từ chuỗi sang số, ta dùng phương thức  parseInt().  Ví dụ:

var a = "5";
a = parseInt(a);

var b = "10";
b = parseInt(b);

console.log( a + b ); //Kết quả: 15

Hàm

function say(n) {
    console.log("Xin chào " + n);
}
say("TechMaster");

//Kết quả: Xin chào TechMaster

Vòng lặp

for (var i = 0; i < 5; i++) {
    console.log(i);
}

//Kết quả
//0
//1
//2
//3
//4

Mảng

var name = {
    server: ["Node.js", "PHP"],
    client: ["HTML", "CSS", "JavaScript"]
}
console.log(name.server);//Kết quả: ["Node.js", "PHP"]
console.log(name.client);//Kết quả: ["HTML", "CSS", "JavaScript"]

Node.js kế thừa các kiểu dữ liệu cũng như toàn bộ các thuộc tính và phương thức của các kiểu dữ liệu này từ JavaScript. Ví dụ: length, push, indexOf,...