Tất tần tật về Node.js cho người mới bắt đầu

1. Node.js là gì?

Node.js là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8 Engine, được sử dụng để xây dựng các ứng dụng phía server. Node.js có thể chạy trên nhiều hệ điều hành khác nhau như Window, Linux, OS X… Node.js cung cấp đa dạng các thư viện ở dạng javascript module giúp đơn giản hóa việc phát triển các ứng dụng web sử dụng Node.js.

Node.js được định nghĩa chính thức như sau: “Node.js là một nền tảng dựa vào Chrome Javascript runtime để xây dựng các ứng dụng nhanh, có độ lớn. Node.js sử dụng các phần phát sinh các sự kiện (event-driven), mô hình non-blocking I/O để tạo ra các ứng dụng nhẹ và hiệu quả cho các ứng dụng về dữ liệu thời gian thực chạy trên các thiết bị phân tán.”

2. Đặc điểm Node.js

Không đồng bộ và Phát sinh sự kiện (Event Driven): Các API của thư viện Node.js đều không đồng bộ (non-blocking). Điều này lý giải qua việc Node.js không bao giờ đợi một API trả về dữ liệu. Việc di chuyển máy chủ đến các API tiếp theo sau khi gọi và cơ chế thông báo các sự kiện của Node.js giúp máy chủ dễ có được một phản ứng từ các cuộc gọi API trước (Realtime).

Chạy rất nhanh: việc được xây dựng trên V8 Javascript Engine của Google Chrome, giúp Node.js thực thi chương trình nhanh chóng hơn.

Các tiến trình đơn giản nhưng hiệu năng cao: Node.js sử dụng một mô hình luồng đơn (single thread) với các sự kiện lặp. Cơ chế sự kiện giúp Server trả lại các phản hồi theo cơ chế non-blocking và tạo cho Server hiệu quả cao hơn so với các cách truyền thống là tạo ra một số lượng luồng hữu hạn để quản lý request. Node.js sử dụng các chương trình đơn luồng và các chương trình này cung cấp những dịch vụ cho số lượng request nhiều hơn so với các Server truyền thống như Apache HTTP Server.

Không đệm: Ứng dụng Node.js không lưu trữ các dữ liệu buffer.

Có giấy phép: Node.js được cấp phép bởi MIT License.

3. Các công ty sử dụng Node.js

Node.js được những công ty hàng đầu sử dụng để xây dựng ứng dụng cho chính công ty của họ. Những cái tên tiêu biểu phải kể đến gồm: Netflix, LinkedIn, Uber, Paypal, Trello, Medium, eBay…

4. Khi nào thì nên dùng Node.js? 

Node.js phù hợp nhất cho việc xây dựng website và các công cụ yêu cầu thời gian thực cũng như tính đồng bộ. Các trang web/ứng dụng trò chuyện là một ví dụ điển hình cho việc sử dụng Node.js vì chúng thường đòi hỏi các tác vụ mang nặng tính IO. Mô hình non-blocking event-driven cho phép Node.js có thể xử lý nhiều yêu cầu cùng một lúc.

Với Node.js, việc tạo ra FE (front-end) cho các web APIs (thông qua REST) cũng hữu hiệu. Điều này có được nhờ sự tối ưu hóa cho event-driven IO. Hơn nữa, việc xử lý JSON một cách tự nhiên còn góp phần làm giảm tối thiểu việc phân tích cú pháp.

5. Khi nào thì KHÔNG nên dùng Node.js?

Mặt khác, khi nào không nên dùng Node.js. Đó là khi gặp phải những tác vụ nặng về tính toán. Có nghĩa là nếu bạn muốn thực hiện một thứ gì đó như kiểu “machine learning” với Node.js thì hẳn là bạn sẽ không thể trải nghiệm hết những ưu việt của nền tảng này đâu nhé.

Node.js được tạo ra bởi Ryan Dahl từ năm 2009 và vẫn đang phát triển một cách nhanh chóng. Bạn có nhớ khi chỉ trong vài tháng, Node.js đã chuyển từ v0.12.x sang v5.1.x. Và hiện tại Node.js đã có mặt trên thị trường với phiên bản bao nhiêu không?

Nếu vẫn dõi theo tiến trình phát triển của Node.js, hẳn bạn sẽ phải đặt câu hỏi về tính ổn định của nền tảng này đó.