__dirname trong nodejs

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ả

console

Dùng để in thông tin trên stdout và stderr.

process

Đượ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.

Bài viết dưới đây Taimienphi.vn sẽ giới thiệu cho bạn về các đối tượng Global hiện diện trong các module Node.js. Với các đối tượng Global, chúng ta có thể gọi hoặc sử dụng trực tiếp các đối tượng này. Đối tượng global có thể là các module, hàm, chuỗi và một đối tượng.

__dirname trong nodejs

Tìm hiểu đối tượng Global trong Node.js

Đối tượng Global trong Node.js

Các đối tượng global trong Node.js có tính chất toàn cục và hiện có sẵn trong tất cả module. Như Taimienphi.vn vừa đề cập ở trên, các đối tượng Global có thể gọi hoặc sử dụng trực tiếp, và nó có thể là các module, hàm, chuỗi và một đối tượng.

Chuỗi Global

__filename: biểu diễn tên file của mã đang được thực thi. Nó chỉ là đường dẫn tuyệt đối tới file chứa phần mã này. Khi làm việc với một chương trình chính, nó tránh bị trùng với tên file được sử dụng trong dòng lệnh. Đường dẫn tới module file là giá trị bên trong module như hình dưới đây:

__dirname trong nodejs

Khi đoạn mã trên được thực thi, đường dẫn file tuyệt đối được in nghiêng trên giao diện console có dạng như dưới đây:

C:\odesk\Abhishek Thakur\NodeJS\GlobalObjects\hello-world-server.js

__dirname: Biểu diễn tên của thư mục tồn tại trong script thực thi. Khi giá trị của chuỗi Global này được ghi lại, nó sẽ in đường dẫn thư mục tuyệt đối tại vị trí file script tồn tại trên ổ cứng máy tính như hình dưới đây:

__dirname trong nodejs

Khi thực thi đoạn mã trên, đường dẫn file tuyệt đối được in nghiêng trên giao diện console có dạng như dưới đây:

C:\odesk\Abhishek Thakur\NodeJS\GlobalObjects

Hàm Global

- Hàm setTimeout (callback, milliseconds): Hàm setTimeout (callback, milliseconds) là hàm Global được sử dụng để chạy callback sau khi thời gian chờ được tính bằng mili giây.

Đây là 2 tham số của hàm. Thời gian trễ phụ thuộc vào các yếu tố khác như cấu hình hệ điều hành và thời gian tải hệ thống. Thời gian tối đa mà một bộ đếm thời gian có thể kéo dài là 24.8 ngày.

Dưới đây là ví dụ về hàm timer gọi lại một hàm và in một chuỗi hiện diện bên trong hàm đó sau 3000 ms (tức là 3 giây).

__dirname trong nodejs

Khi thực thi đoạn mã trên, chuỗi được in trên console sau 3 giây trễ có dạng như dưới đây:

Hello, welcome to the World of global objects in Node.js!

- Hàm clearTimeout (time): Đây là hàm Global được sử dụng để dừng bộ hẹn giờ được tạo trước đó bằng hàm setTimeout (). Tham số time được trả về bởi hàm setTimeout ().

Dưới đây là ví dụ hàm clearTimeout xóa bộ hẹn giờ được tạo bởi hàm setTimeout.

__dirname trong nodejs

Khi đoạn mã trên được thực thi, không có gì được in trên console sau 3 giây trễ vì bộ đếm giờ chờ bị hàm clearTimeout hủy.

- Hàm setInterval (callback, milliseconds): Hàm Global setInterval (callback, milliseconds) được sử dụng để chạy callback sau khoảng thời gian được tính bằng mili giây.

Thời gian trễ phụ thuộc vào các yếu tố khác như cấu hình hệ điều hành và thời gian tải hệ thống. Thời gian tối đa mà một bộ đếm thời gian có thể kéo dài là 24.8 ngày.

Dưới đây là ví dụ về hàm setInterval, gọi 1 hàm và in chuỗi hiện diện bên trong hàm đó một lần sau 3000 ms (tức 3 giây). Ngoài ra nó trả về giá trị là bộ hẹn giờ. Để xóa bộ hẹn giờ này, bạn có thể sử dụng hàm clearInterval (timer).

__dirname trong nodejs

Khi đoạn mã trên được thực thi, chuỗi được in trên console sau 3 giây / lần có dạng như dưới đây:

__dirname trong nodejs

Đối tượng Global

Bảng dưới đây liệt kê danh sách các đối tượng Global khác được sử dụng thường xuyên trong các ứng dụng:

1. Console

Trong Node.js, console là một đối tượng Global được sử dụng để in các mức thông điệp khác nhau tới stdout và stderr. Dưới đây là các phương thức được sử dụng để in các thông tin, cảnh báo và thông báo lỗi:

__dirname trong nodejs

Dưới đây là ví dụ về console:

console.log( __dirname );

console.info( __filename );

2. Process

Đối tượng Process trong Node.js được sử dụng để lấy thông tin về process hiện tại, cung cấp nhiều sự kiện và phương thức liên quan đến các hoạt động của process.

Việc sử dụng các phương thức này giúp bạn kiểm soát các tương tác hệ thống tốt hơn. Dưới đây là bảng danh sách các process phổ biến được sử dụng các trong ứng dụng:

__dirname trong nodejs

Như vậy bài viết trên đây Taimienphi.vn vừa giới thiệu cho bạn về đối tượng Global trong Node.js là gì? Ngoài ra bạn đọc có thể tham khảo thêm một số bài viết khác đã có trên Taimienphi.vn để tìm hiểu rõ hơn về Event, File System (FS) trong Node.js là gi nhé.

How to use __ dirname in Nodejs?

The __dirname in a node script returns the path of the folder where the current JavaScript file resides. __filename and __dirname are used to get the filename and directory name of the currently executing file. The ./ gives the current working directory. It works similar to process.

What is __ dirname in node?

It gives the current working directory of the Node. js process. __dirname: It is a local variable that returns the directory name of the current module. It returns the folder path of the current JavaScript file.

How to get base directory in node js?

Different methods to find the current directory in Node..
console. log("Current directory:", __dirname); Code language: JavaScript (javascript).
path. dirname(__filename) Code language: JavaScript (javascript).
console. log("Current directory:", process. cwd()); Code language: JavaScript (javascript).

What is dirname in path?

dirname() method returns the directories of a file path.