Nội dung chính
- Đối tượng Process
- Các sự kiện của đối tượng process trong Node.js
- Ví dụ đối tượng process trong Node.js
- Các thuộc tính của đối tượng process trong Node.js
- Ví dụ sử dụng thuộc tính của đối tượng process trong Node.js
- Một số phương thức của đối tượng process trong Node.js
- Ví dụ sử dụng phương thức của đối tượng process trong Node.js
Đối tượng Process
Đố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 Process cung cấp rất nhiều phương thức hữu ích được trình bày dưới đây.
Trong Node.js toàn cục (Global) tức là mọi thứ đều có quyền truy cập đến. Bạn 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.
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:
Stt | Sự kiện & Mô tả |
---|---|
1 | exit 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ó |
2 | beforeExit 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. |
3 | uncaughtException 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 |
4 | Signal Events Sự kiện xảy ra khi process nhận một tín hiệu giống như SIGINT, SIGHUP, ... |
Ví dụ đối tượng process trong Node.js
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) { // doan 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
Kết quả:
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.
Stt | Thuộc tính & Mô tả |
---|---|
1 | stdout 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. |
2 | stderr Một Writable Stream tới stderr. |
3 | stdin Một Writable Stream tới stdin. |
4 | argv 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. |
5 | execPath Đây là đường dẫn tuyệt đối có thể thực thi mà bắt đầu process. |
6 | execArgv Đây là tập hợp các tùy chọn command line trong Node.js |
7 | env Một đối tượng chứa thông tin về User Environment. |
8 | exitCode Một số biểu diễn exit code của process |
9 | version Thuộc tính này hiển thị thông tin về NODE_VERSION. |
10 | versions Thuộc tính này hiển thị thông báo về version và các dependency của Node.js. |
11 | config 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. |
12 | pid Là PID của process. |
13 | title Phương thức getter/setter để thiết lập những gì hiển thị trong 'ps'. |
14 | arch Cấu trúc của processor bạn đang sử dụng: 'arm', 'ia32', hoặc 'x64'. |
15 | platform Nền tảng bạng đang sử dụng: 'darwin', 'freebsd', 'linux', 'sunos' hoặc 'win32' |
Ví dụ sử dụng thuộc tính của đối tượng process trong Node.js
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("path: " + process.execPath); // Lay thong tin ve Platform console.log("platform: " + process.platform);
Chạy main.js để xem kết quả::
> node main.js
Kết quả:
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:
Stt | Phương thức & Mô tả |
---|---|
1 | abort() 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. |
2 | chdir(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. |
3 | cwd() Trả về thư mục làm việc hiện tại của process. |
4 | exit([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'. |
5 | getgid() Lấy Group ID dạng giá trị số của process. |
6 | setgid(id) Thiết lập Group ID của process |
7 | getuid() Lấy User ID dạng giá trị số process. |
8 | setuid(id) Thiết lập User ID của process |
9 | memoryUsage() Trả về một đối tượng miêu tả Memory Usage. |
Ví dụ sử dụng phương thức của đối tượng process trong Node.js
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
Kết quả: