Node.js: Giới thiệu Node.js
Node.js là một nền tảng dựa trên JavaScript rất mạnh mẽ được xây dựng trên JavaScript V8 Engine của Google Chrome. Nó được sử dụng để phát triển các ứng dụng web chuyên sâu I / O như các trang phát trực tuyến video, ứng dụng đơn trang (Single Page Application) và các ứng dụng web khác. Node.js là mã nguồn mở, hoàn toàn miễn phí và được sử dụng bởi hàng nghìn nhà phát triển trên khắp thế giới.
Hướng dẫn này dành cho ai
Hướng dẫn này được thiết kế cho các lập trình viên phần mềm muốn tìm hiểu kiến thức cơ bản về Node.js và các khái niệm kiến trúc của nó. Hướng dẫn này sẽ cung cấp cho bạn đủ hiểu biết về tất cả các thành phần cần thiết của Node.js với các ví dụ phù hợp.
Điều kiện tiên quyết
Trước khi tiếp tục với hướng dẫn này, bạn nên hiểu cơ bản về JavaScript. Vì ta sẽ phát triển các ứng dụng dựa trên web bằng Node.js, nên sẽ rất tốt nếu bạn có một số hiểu biết về các công nghệ web khác như HTML5, CSS3, AJAX, v.v.
Node.js là gì?
Node.js là một nền tảng phía máy chủ được xây dựng trên Công cụ JavaScript của Google Chrome (V8 Engine). Node.js được phát triển bởi Ryan Dahl vào năm 2009. Định nghĩa của Node.js được cung cấp bởi tài liệu chính thức của nó như sau:
Node.js là một nền tảng được xây dựng dựa trên thời gian chạy (runtime) JavaScript của Chrome để dễ dàng xây dựng các ứng dụng mạng nhanh và có thể mở rộng. Node.js sử dụng mô hình I/O hướng sự kiện, không chặn, giúp nó nhẹ và hiệu quả, hoàn hảo cho các ứng dụng thời gian thực sử dụng nhiều dữ liệu chạy trên các thiết bị phân tán.
Node.js là một môi trường chạy mã nguồn mở, đa nền tảng để phát triển các ứng dụng mạng và phía máy chủ. Các ứng dụng Node.js được viết bằng JavaScript và có thể chạy trong thời gian chạy Node.js trên OS X, Microsoft Windows và Linux.
Node.js cũng cung cấp một thư viện phong phú gồm các mô-đun JavaScript khác nhau, giúp đơn giản hóa việc phát triển các ứng dụng web sử dụng Node.js ở một mức độ lớn.
Node.js = Runtime Environment + JavaScript Library
Các tính năng của Node.js
Sau đây là một số tính năng quan trọng khiến Node.js trở thành lựa chọn hàng đầu của các kiến trúc sư phần mềm.
- Không đồng bộ và theo hướng sự kiện: Tất cả các API của thư viện Node.js là không đồng bộ, nghĩa là không chặn (non-blocking). Về cơ bản, nó có nghĩa là một máy chủ dựa trên Node.js không bao giờ đợi API trả về dữ liệu. Máy chủ di chuyển đến API tiếp theo sau khi gọi nó và cơ chế thông báo Sự kiện của Node.js giúp máy chủ nhận được phản hồi từ lệnh gọi API trước đó.
- Rất nhanh: Được xây dựng trên Công cụ JavaScript V8 của Google Chrome, thư viện Node.js thực thi mã rất nhanh.
- Đơn luồng nhưng có khả năng mở rộng cao: Node.js sử dụng mô hình một luồng với vòng lặp sự kiện. Cơ chế sự kiện giúp máy chủ phản hồi theo cách không chặn và làm cho máy chủ có khả năng mở rộng cao so với các máy chủ truyền thống tạo ra các luồng giới hạn để xử lý các yêu cầu. Node.js sử dụng một chương trình luồng đơn và chương trình tương tự có thể cung cấp dịch vụ cho số lượng yêu cầu lớn hơn nhiều so với các máy chủ truyền thống như Apache HTTP Server.
- Không đệm: Các ứng dụng Node.js không bao giờ đệm bất kỳ dữ liệu nào. Các ứng dụng này chỉ đơn giản là xuất dữ liệu theo từng phần.
- Giấy phép: Node.js được phát hành theo giấy phép của MIT.
Ai sử dụng Node.js?
Sau đây là liên kết trên github wiki chứa danh sách đầy đủ các dự án, ứng dụng và công ty đang sử dụng Node.js. Danh sách này bao gồm eBay, General Electric, GoDaddy, Microsoft, PayPal, Uber, Wikipins, Yahoo !, và Yammer.
Các khái niệm
Sơ đồ sau mô tả một số phần quan trọng của Node.js mà chúng ta sẽ thảo luận chi tiết trong các bài học tiếp theo.
Khi nào nên sử dụng Node.js
Sau đây là những lĩnh vực mà Node.js đang chứng tỏ mình là một đối tác công nghệ hoàn hảo.
- Ứng dụng ràng buộc I/O
- Ứng dụng truyền dữ liệu
- Ứng dụng thời gian thực chuyên sâu về dữ liệu (DIRT)
- Ứng dụng dựa trên API JSON
- Ứng dụng trang đơn
Khi nào không nên sử dụng Node.js
Không nên sử dụng Node.js cho các ứng dụng đòi hỏi nhiều CPU.