Get in touch
or send us a question?
CONTACT

Bài 1. Giới thiệu về NodeJS

NodeJS là gì?

NodeJS là môi trường runtime chạy JavaScript đa nền tảng và có mã nguồn mở, được sử dụng để chạy các ứng dụng web bên ngoài trình duyệt của client. Nền tảng này được phát triển bởi Ryan Dahl vào năm 2009, được xem là một giải pháp hoàn hảo cho các ứng dụng sử dụng nhiều dữ liệu nhờ vào mô hình hướng sự kiện (event-driven) không đồng bộ.

Node.JS là gì?

Ưu và nhược điểm của Node.JS

Dưới đây là một số ưu và nhược điểm của Nodejs version mà bạn cần biết:

Ưu điểm

  • IO hướng sự kiện không đồng bộ, cho phép xử lý nhiều yêu cầu đồng thời.
  • Sử dụng JavaScript – một ngôn ngữ lập trình dễ lập trình dễ học.
  • Chia sẻ cùng code ở cả phía client và server.
  • NPM(Node Package Manager) và module Node đang ngày càng phát triển mạnh mẽ.
  • Công đồng hỗ trợ tích cực.
  • Cho phép stream các file có kích thước lớn.

Nhược điểm

  • Không có khả năng mở rộng, vì vậy không thể tận dụng lợi thế mô hình đa lõi trong các phần cứng cấp server hiện nay.
  • Khó thao tác với cơ sở dữ liệu quan hệ.
  • Mỗi callback sẽ đi kèm với rất nhiều callback lồng nhau khác.
  • Cần có kiến thức tốt về JavaScript.
  • Không phù hợp với tác vụ đòi hỏi nhiều CPU.
Nhược điểm của NodeJS

Những ứng dụng nên viết bằng NodeJS

NodeJS được sử dụng để xây dựng rất nhiều loại ứng dụng khác nhau, trong đó phổ biến nhất gồm có:

  • Ứng dụng trò chuyện trong thời gian thực: Nhờ vào cấu trúc không đồng bộ đơn luồng, NodeJS rất thích hợp cho mục đích xử lý giao tiếp trong thời gian thực. Nền tảng này có thể dễ dàng mở rộng quy mô và thường dùng để tạo ra các chatbot. Bên cạnh đó, các tính năng liên quan đến ứng dụng trò chuyện như: chat nhiều người, thông báo đẩy,… Cũng có thể dễ dàng được bổ sung nhờ NodeJS.
  • Internet of Things (IoT): Các ứng dụng IoT thường bao gồm nhiều bộ cảm biến phức tạp để gửi những phần dữ liệu nhỏ. NodeJS là một lựa chọn lý tưởng để xử lý các yêu cầu đồng thời này với tốc độ cực nhanh.
  • Truyền dữ liệu: Netflix là một trong những công ty lớn trên thế giới chuyên sử dụng NodeJS cho mục đích truyền dữ liệu. Sở dĩ vì đây là một nền tảng nhẹ và cực nhanh, đồng thời còn cung cấp một API chuyên dụng để stream.
  • Các SPA (Single-page application) phức tạp: Trong SPA, toàn bộ ứng dụng được load vào trong một trang duy nhất, do đó sẽ có một số request được thực hiện trong nền. Vòng lặp sự kiện (event loop) của NodeJS cho phép xử lý các request theo hướng non-blocking.
  • Các ứng dụng REST dựa trên API: JavaScript được sử dụng trong cả frontend lẫn backend của trang. Do đó một server có thể dễ dàng giao tiếp với frontend qua REST API bằng NodeJS. Bên cạnh đó, NodeJS còn cung cấp nhiều package như Express.js hay Koa để việc xây dựng ứng dụng web trở nên dễ dàng hơn bao giờ hết.

Những kết luận sai lầm về NodeJS

Khi tìm hiểu NodeJS là gì, bạn đọc thường mắc phải một số suy nghĩ sai lầm tương đối phổ biến sau:

Đầu tiên, NodeJS là một nền tảng (platform) chứ không phải là một web framework như một số người thường nhầm lẫn.

Thứ hai, NodeJS cũng không phải là một ngôn ngữ lập trình mà là một môi trường runtime dùng để chạy JavaScript bên ngoài trình duyệt. Vì vậy để học và sử dụng NodeJS thifnguowif dùng cần có những kiến thức nhất định về một số giao thức, JavaScript hay kỹ thuật lập trình,….

Và cuối cùng, một câu hỏi phổ biến của người dùng là: NodeJS là backend hay frontend? Thật ra NodeJS có thể được sử dụng như một frontend lẫn backend nhờ vào các framework như Express.js hay Meteor.js. Một số stack phổ biến như MERN sử dụng Express.js làm backend. bên cạnh đó, nhiều thành phần cũng có thể được tái sử dụng giữu backend và frontend vô cùng tiện lợi.

Những kết luận sai lầm về NodeJS

Một số lý do nên sử dụng NodeJS là gì?

NodeJS là một trong những nền tảng phổ biến nhất hiện nay cho mục đích phát triển ứng dụng mạng phía server. Vậy lý do nên sử dụng NodeJS là gì? Hãy cùng tìm hiểu những đặc điểm khiến NodeJS là lựa chọn hàng đầu cho các developer hiện nay:

  • Tốc độ cực nhanh: Được xây dựng dựa trên engine JavaScript V8 của Google Chrome, do đó các thư viện của nó có khả năng thực thi code rất nhanh.
  • NPM: Với hơn 50,000 package khác nhau, các developer có thể dễ dàng lựa chọn bất kỳ tính năng nào để xây dựng cho ứng dụng của mình.
  • Lập trình không đồng bộ: Mọi API của NodeJS đều có tính không đồng bộ (non-blocking) do đó một server dựa trên NodeJS không cần phải đợi API trả về dữ liệu.
  • Không có buffering: NodeJS giúp tiết kiệm thời gian xử lý file khi cần upload âm thanh hoặc video vì các ứng dụng này không bao giờ buffer dữ liệu mà chỉ xuất dữ liệu theo từng phần (chunk).
  • Đơn luồng: NodeJS sử dụng mô hình đơn luồng với vòng lặp sự kiện. Do đó các ứng dụng có thể xử lý số lượng request lớn hơn rất nhiều so với csac server truyền thông như Apache HTTP Server.
Những lý do nên sử dụng NodeJS.

Những công ty lớn nào đang sử dụng NodeJS

NodeJS hiện nay đang được sử dụng bởi rất nhiều gã khổng lồ trên khắp thế giới, nhanh chóng vượt ngưỡng 1 tỉ lượt download từ năm 2018 và hỗ trợ đến khoảng 1.2% tổng số website trên Internet, tương đương với 20 triệu trang.

Lời kết

NodeJS là một môi trường lập trình phổ biến, được dùng để xây dựng các ứng dụng quy mô lớn cần xử lý lượng request đồng thời lớn. Thuộc tính I/O non-blocking đơn luông giúp nền tảng này trở thành một giải pháp lý tưởng cho việc xây dựng các ứng dụng truyền dữ liệu lớn trong thời gian thực. Hy vọng bài viết này sẽ giúp bạn hiểu được định nghĩa NodeJS là gì.