Process trong Node.js



Đối tượng process trong Node.js là đối tượng toàn cục và có thể được truy cập từ bất cứ nơi đâu. Đối tượng toàn cục process này cung cấp rất nhiều phương thức tiện lợi được trình bày dưới đây.

Các sự kiện của đối tượng process trong Node.js

Đối tượng process là một sự thể hiện của EventEmitter và sinh các sự kiện sau:

SttSự kiện & Miêu tả
1exit
Sự kiện xảy ra khi process chuẩn bị thoát. Không có cách nào để ngăn cản nó
2beforeExit
Sự kiện này xảy ra khi Node.js làm trống Event Loop và không còn cái gì khác để schedule nữa.
3uncaughtException
Sự kiện xảy ra khi xuất hiện một exception và không được bắt. Nếu một Listener được thêm vào exception này thì hành động mặc định sẽ không xảy ra
4Signal Events
Sự kiện xảy ra khi process nhận một tín hiệu giống như SIGINT, SIGHUP, ...

Ví dụ

Quảng cáo

Ví dụ sau minh họa cách hoạt động của sự kiện exit của đối tượng toàn cục process trong Node.js. Bạn tạo main.js có nội dung như sau:

process.on('exit', function(code) {

  // Phan code sau se khong bao gio duoc thuc thi.
  setTimeout(function() {
    console.log("Dong nay se khong duoc in ra");
  }, 0);
  
  console.log('Chuan bi thoat ra voi gia tri code la:', code);
});
console.log("Ket thuc chuong trinh!");

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

$ node main.js

Kiểm tra kết quả:

Ket thuc chuong trinh!
Chuan bi thoat ra voi gia tri code la: 0

Các thuộc tính của đối tượng process trong Node.js

Đối tượng toàn cục process cung cấp nhiều thuộc tính hữu ích giúp bạn kiểm soát tốt hơn với quá trình tương tác với hệ thống. Bảng dưới liệt kê các thuộc tính của đối tượng toàn cục process trong Node.js.

SttThuộc tính & Miêu tả
1stdout
Một Writable Stream tới stdout. Bạn tham khảo chương Stream trong Node.js để hiểu thêm về Writable Stream.
2stderr
Một Writable Stream tới stderr.
3stdin
Một Writable Stream tới stdin.
4argv
Một mảng chứa các tham số command line. Tham số đầu tiên sẽ là 'node', tham số thứ hai là tên của JavaScript file. Tham số tiếp theo là bất kỳ tham số command line tùy ý nào.
5execPath
Đây là đường dẫn tuyệt đối có thể thực thi mà bắt đầu process.
6execArgv
Đây là tập hợp các tùy chọn command line trong Node.js
7env
Một đối tượng chứa thông tin về User Environment.
8exitCode
Một số biểu diễn exit code của process
9version
Thuộc tính này hiển thị thông tin về NODE_VERSION.
10versions
Thuộc tính này hiển thị thông báo về version và các dependency của Node.js.
11config
Một đối tượng chứa phần biểu diễn dưới dạng JavaScript của các tùy chọn liên quan tới config được sử dụng để biên dịch các chương trình Node.js.
12pid
Là PID của process.
13title
Phương thức getter/setter để thiết lập những gì hiển thị trong 'ps'.
14arch
Cấu trúc của processor bạn đang sử dụng: 'arm', 'ia32', hoặc 'x64'.
15platform
Nền tảng bạng đang sử dụng: 'darwin', 'freebsd', 'linux', 'sunos' hoặc 'win32'
Quảng cáo

Ví dụ

Dưới đây là ví dụ minh họa một số thuộc tính của đối tượng toàn cục process trong Node.js. Bạn tạo main.js có nội dung như sau:

// In ket qua tren man hinh Console
process.stdout.write("Hello World!" + "\n");

// Doc cac tham so da truyen
process.argv.forEach(function(val, index, array) {
   console.log(index + ': ' + val);
});

// Lay duong truyen
console.log(process.execPath);


// Lay thong tin ve Platform 
console.log(process.platform);

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

$ node main.js

Trên Linux, kết quả của bạn có thể là:

Hello World!
0: node
1: /web/com/1427106219_25089/main.js
/usr/bin/node
linux

Một số phương thức của đối tượng process trong Node.js

Bảng dưới trình bày một số phương thức hữu ích của đối tượng toàn cục process trong Node.js:

SttPhương thức & Miêu tả
1abort()
Phương thức này làm node sinh một abort. Điều này sẽ làm node thoát ra và tạo một core file.
2chdir(directory)
Thay đổi thư mục làm việc hiện tại của process hoặc ném một exception nếu phương thức thất bại.
3cwd()
Trả về thư mục làm việc hiện tại của process.
4exit([code])
Kết thúc process với một mã code cụ thể. Nếu bị bỏ qua, exit sử dụng mã code 0 biểu thị 'success'.
5getgid()
Lấy Group ID dạng giá trị số của process.
6setgid(id)
Thiết lập Group ID của process
7getuid()
Lấy User ID dạng giá trị số process.
8setuid(id)
Thiết lập User ID của process
9memoryUsage()
Trả về một đối tượng miêu tả Memory Usage.

Ví dụ

Dưới đây là ví dụ minh họa một số phương thức của đối tượng toàn cục process trong Node.js. Bạn tạo main.js có nội dung:

// In thu muc lam viec hien tai
console.log('Thu muc lam viec hien tai: ' + process.cwd());

// In thong tin ve process version
console.log('Phien ban hien tai: ' + process.version);

// In thong tin ve memory usage
console.log(process.memoryUsage());

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

$ node main.js

Kiểm tra kết quả:

Thu muc lam viec hien tai: /web/com/1427106219_25089
Phien ban hien tai: v0.10.33
{ rss: 11505664, heapTotal: 4083456, heapUsed: 2157704 }

Đã có app VietJack trên điện thoại, giải bài tập SGK, SBT Soạn văn, Văn mẫu, Thi online, Bài giảng....miễn phí. Tải ngay ứng dụng trên Android và iOS.

Theo dõi chúng tôi miễn phí trên mạng xã hội facebook và youtube:

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:


doi_tuong_toan_cuc_trong_nodejs.jsp


Tài liệu giáo viên