Xử lý nodejs

Trong phần này, chúng ta sẽ tìm hiểu về Node. js và hiểu lý do tại sao chúng ta nên sử dụng Node. js

Mô hình máy chủ web truyền thống

Trong mô hình máy chủ web truyền thống, mỗi yêu cầu được xử lý bởi một luồng chuyên dụng từ nhóm luồng. Nếu không có luồng nào khả dụng trong nhóm luồng tại bất kỳ thời điểm nào thì yêu cầu sẽ đợi cho đến luồng khả dụng tiếp theo. Chuỗi chuyên dụng thực thi một yêu cầu cụ thể và không quay lại nhóm luồng cho đến khi nó hoàn thành việc thực thi và trả về phản hồi

Xử lý nodejs
Mô hình máy chủ web truyền thống

Nút. js Mô hình quy trình

Nút. js xử lý các yêu cầu của người dùng khác nhau khi so sánh với mô hình máy chủ web truyền thống. Nút. js chạy trong một tiến trình duy nhất và mã ứng dụng chạy trong một luồng duy nhất và do đó cần ít tài nguyên hơn các nền tảng khác. Tất cả các yêu cầu của người dùng đối với ứng dụng web của bạn sẽ được xử lý bởi một luồng duy nhất và tất cả công việc I/O hoặc công việc chạy dài được thực hiện không đồng bộ cho một yêu cầu cụ thể. Vì vậy, chuỗi đơn này không phải đợi yêu cầu hoàn thành và có thể tự do xử lý yêu cầu tiếp theo. Khi công việc I/O không đồng bộ hoàn tất, nó sẽ xử lý thêm yêu cầu và gửi phản hồi

Một vòng lặp sự kiện liên tục theo dõi các sự kiện được tạo ra cho một công việc không đồng bộ và thực thi chức năng gọi lại khi công việc hoàn thành. Trong nội bộ, nút. js sử dụng libev cho vòng lặp sự kiện, lần lượt sử dụng nhóm luồng C++ nội bộ để cung cấp I/O không đồng bộ

Hình dưới đây minh họa mô hình máy chủ web không đồng bộ sử dụng Node. js

Xử lý nodejs
Nút. js Mô hình quy trình

Nút. mô hình quy trình js tăng hiệu suất và khả năng mở rộng với một vài lưu ý. Nút. js không phù hợp với ứng dụng thực hiện các hoạt động sử dụng nhiều CPU như xử lý hình ảnh hoặc công việc tính toán nặng khác vì cần có thời gian để xử lý yêu cầu và do đó chặn luồng đơn

Đối tượng process trong Node. js là đối tượng toàn cục và có thể truy cập được từ bất cứ nơi nào. Quá trình đối tượng 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 nhập chúng theo 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 Mô-đun, các hàm, các chuỗi hoặc các đối tượng



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

Quá trình đối tượng là một sự kiện có thể xuất hiện của EventEmitter và sinh ra các sự kiện sau

Stt Sự kiện & Mô tả1 thoát
Sự kiện xảy ra khi quy trình chuẩn bị thoát. Không có cách nào để Stop it2beforeExit
Sự kiện này xảy ra khi Node. js làm trống Vòng lặp sự kiện và không còn cái gì khác để lên lịch nữa. 3uncaughtException
Sự kiện xảy ra khi xuất hiện một ngoại lệ và không bị bắt. Nếu một Trình nghe được thêm vào ngoại lệ này thì hành động mặc định sẽ không xảy ra4Sự kiện tín hiệu
Sự kiện xảy ra khi quá trình nhận tín hiệu giống như SIGINT, SIGHUP,.

Ví dụ đối tượng xử lý trong Node. js

Ví dụ sau minh họa cách hoạt động của sự kiện thoát khỏi toàn bộ quá trình cục bộ của đối tượng trong Node. js. You make main. js has content as after

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 chính. js to view results

> node main.js

Kết quả

Xử lý nodejs


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

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

SttThuộc tính & Mô tả1stdout
Một luồng có thể ghi tới thiết bị xuất chuẩn. Bạn tham khảo chương trình Stream trong Node. js để hiểu thêm về Writable Stream. 2stderr
Một luồng có thể ghi tới stderr. 3stdin
Một luồng có thể ghi tới stdin. 4argv
Một mảng chứa các tham số dòng lệnh. Tham số đầu tiên sẽ là 'nút', tham số thứ hai là tên của tệp JavaScript. Tham số tiếp theo là dòng lệnh bất kỳ tham số tùy ý. 5execPath
Đây là đường dẫn tuyệt vời để có thể thực thi quá trình bắt đầu. 6execArgv
Đây là tập hợp các tùy chọn dòng lệnh trong Node. js7env
Một đối tượng chứa thông tin về Môi trường người dùng. 8exitCode
Một số biểu diễn mã thoát của process9version
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ề phiên bản và sự phụ thuộc 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 đến cấu hình tùy chọn được sử dụng để biên dịch các nút chương trình. js. 12pid
Là PID của tiến trình. 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 bộ xử lý bạn đang sử dụng. 'cánh tay', 'ia32' hoặc 'x64'. 15platform
Nền tảng bạn đang sử dụng. 'darwin', 'freebsd', 'linux', 'sunos' hoặc 'win32'

Ví dụ sử dụng thuộc tính của process đối tượng trong Node. js

Dưới đây là ví dụ minh họa một số phương thức của quy trình toàn cục của đối tượng trong Node. js. You make main. js có nội dung

Quy trình trong NodeJS là gì?

Đối tượng process trong Node. js là một đối tượng toàn cầu có thể được truy cập bên trong bất kỳ mô-đun nào mà không yêu cầu nó . Có rất ít đối tượng hoặc thuộc tính toàn cầu được cung cấp trong Node. js và process là một trong số đó. Nó là một thành phần thiết yếu trong Node.

Biến quy trình trong NodeJS là gì?

Trong nút. js, quy trình. env là biến toàn cục được đưa vào trong thời gian chạy . Nó là một cái nhìn về trạng thái của các biến môi trường hệ thống. Khi chúng tôi đặt một biến môi trường, nó sẽ được tải vào quy trình.

Làm cách nào để sử dụng process env trong NodeJS?

Bạn có thể truy cập các biến môi trường trong Node. js ngay lập tức. Khi nút của bạn. js khởi động, nó sẽ tự động cung cấp quyền truy cập vào tất cả các biến môi trường hiện có bằng cách tạo đối tượng env trong đối tượng chung của quy trình .

Quá trình đánh dấu trong NodeJS là gì?

Khi ở trong Node JS, một lần lặp của vòng lặp sự kiện đã hoàn tất . Điều này được gọi là đánh dấu. tiến trình. nextTick() nhận chức năng gọi lại được thực thi sau khi hoàn thành lần lặp/đánh dấu hiện tại của vòng lặp sự kiện. Các giai đoạn của Vòng lặp sự kiện trong Node JS từ nodejs. tổ chức.