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:
Stt | Sự kiện & Miêu 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ụ
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.
Stt | Thuộc tính & Miêu 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ụ
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:
Stt | Phương thức & Miêu 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ụ
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: