Dưới đây là Bài 01 theo đúng phong cách của series Laravel 12 (2026): giải thích dễ hiểu, nhiều ví dụ thực tế, bám sát Node.js LTS năm 2026 và hướng đến mục tiêu xây dựng REST API.
"JavaScript không còn chỉ chạy trong trình duyệt. Với Node.js, JavaScript có thể xây dựng cả những hệ thống backend hiện đại phục vụ hàng triệu người dùng."
Mục tiêu bài học
Sau bài học này bạn sẽ hiểu được:
Node.js là gì?
JavaScript Runtime là gì?
V8 Engine hoạt động như thế nào?
Event Loop là gì?
Non-blocking I/O là gì?
Khi nào nên dùng Node.js?
Khi nào không nên dùng Node.js?
JavaScript trước khi có Node.js
Trong nhiều năm, JavaScript chỉ chạy bên trong trình duyệt.
Ví dụ:
alert("Hello World");
hoặc
document.getElementById("title");
Các đoạn mã trên chỉ hoạt động khi có trình duyệt như:
Chrome
Firefox
Edge
Safari
JavaScript lúc này chủ yếu dùng để:
xử lý giao diện
tạo hiệu ứng
kiểm tra dữ liệu nhập
tương tác với người dùng
Nó không thể:
đọc file trên máy chủ
kết nối cơ sở dữ liệu
tạo Web Server
xây dựng REST API
Backend khi đó thường được viết bằng:
PHP
Java
C#
Python
Ruby
Node.js ra đời
Năm 2009, Ryan Dahl giới thiệu Node.js.
Ý tưởng rất đơn giản:
Tại sao JavaScript chỉ được chạy trong trình duyệt?
Nếu JavaScript có thể chạy trực tiếp trên hệ điều hành thì sao?
Đó chính là Node.js.
Node.js là gì?
Node.js là một JavaScript Runtime cho phép chạy JavaScript bên ngoài trình duyệt.
Ví dụ:
console.log("Hello Node.js");
Lưu vào file:
app.js
Chạy:
node app.js
Kết quả:
Hello Node.js
Không cần Chrome.
Không cần Firefox.
Không cần HTML.
Chỉ cần Node.js.
JavaScript Runtime là gì?
Runtime là môi trường thực thi chương trình.
Ví dụ:
PHP cần:
PHP Runtime
Java cần:
JVM
Python cần:
Python Interpreter
JavaScript trong trình duyệt cần:
Chrome Runtime
JavaScript trên máy chủ cần:
Node.js Runtime
Node.js bổ sung rất nhiều khả năng mà trình duyệt không có.
Ví dụ:
đọc file
ghi file
tạo server
kết nối database
tạo REST API
chạy script tự động
Node.js không phải là ngôn ngữ mới
Đây là điều rất nhiều người mới học hiểu nhầm.
Node.js không phải một ngôn ngữ lập trình.
Bạn vẫn viết:
const age = 20;
không phải:
NodeScript
hay
Node Language
Node.js chỉ là môi trường chạy JavaScript.
V8 Engine
Node.js sử dụng V8 Engine.
Đây cũng chính là engine đang chạy bên trong trình duyệt Google Chrome.
Quy trình hoạt động:
JavaScript
│
▼
V8 Engine
│
▼
Machine Code
│
▼
CPU
Nhờ V8, JavaScript được biên dịch và tối ưu rất nhanh, thay vì chỉ được thông dịch từng dòng.
Ưu điểm:
tốc độ cao
tối ưu bộ nhớ
hiệu năng tốt
được Google phát triển liên tục
Node.js bổ sung những gì?
Trình duyệt chỉ cung cấp:
document
window
localStorage
Node.js cung cấp thêm rất nhiều API hệ thống:
fs
path
http
https
os
crypto
stream
process
Ví dụ đọc file:
const fs = require("fs");
const data = fs.readFileSync("hello.txt", "utf8");
console.log(data);
Điều này trình duyệt không thể làm vì lý do bảo mật.
Event Loop
Một trong những điểm đặc biệt nhất của Node.js là Event Loop.
Thay vì tạo nhiều luồng xử lý cho mỗi yêu cầu, Node.js sử dụng:
một luồng JavaScript chính
Event Loop
các API bất đồng bộ của hệ điều hành
Mô hình đơn giản:
Request
│
▼
Event Loop
│
▼
Async Operation
│
▼
Callback
Nhờ vậy Node.js có thể xử lý hàng nghìn kết nối đồng thời mà không cần tạo hàng nghìn luồng.
Đây là nền tảng cho hiệu năng cao của Node.js trong các ứng dụng mạng.
Non-blocking I/O
Đây là khái niệm quan trọng nhất của Node.js.
Giả sử đọc một file rất lớn.
Nếu chương trình phải chờ đọc xong mới làm việc tiếp thì gọi là:
Blocking I/O
Ví dụ:
Đọc file...
(chờ)
(chờ)
(chờ)
Đọc xong
Trong thời gian chờ, chương trình không thể xử lý công việc khác.
Ngược lại, với Node.js:
Đọc file
↓
Tiếp tục xử lý yêu cầu khác
↓
File đọc xong
↓
Thông báo kết quả
Đó gọi là:
Non-blocking I/O
Chính cơ chế này giúp Node.js rất mạnh trong các ứng dụng có nhiều kết nối đồng thời.
Node.js phù hợp với những gì?
Node.js đặc biệt phù hợp với:
REST API
Backend Web
Chat Realtime
WebSocket
Dashboard
Streaming
Proxy Server
Microservices
API Gateway
IoT
Serverless Functions
Ví dụ:
Hệ thống bán hàng
Quản lý nhân sự
CRM
ERP
Mạng xã hội
Hệ thống chat
Ứng dụng học trực tuyến
Khi nào không nên dùng Node.js?
Không phải dự án nào cũng phù hợp.
Ví dụ các tác vụ tính toán nặng như:
xử lý ảnh hàng loạt
dựng video
AI Training
mô phỏng vật lý
tính toán khoa học
Nếu một tác vụ chiếm CPU trong thời gian dài, luồng JavaScript chính sẽ bị bận, làm giảm khả năng phản hồi của ứng dụng.
Trong những trường hợp này, thường sẽ kết hợp Node.js với các tiến trình riêng, Worker Threads hoặc sử dụng các ngôn ngữ phù hợp hơn cho phần tính toán.
Node.js trong hệ sinh thái năm 2026
Ngày nay Node.js là nền tảng của rất nhiều công nghệ phổ biến:
Express.js
Fastify
NestJS
Prisma ORM
TypeScript
Next.js
Vite
Electron
Trong khóa học này, chúng ta sẽ tập trung vào việc xây dựng backend hiện đại với:
Node.js LTS
Express 5
Prisma ORM
PostgreSQL
MongoDB
JWT Authentication
Docker
PM2
Nginx
Đây cũng là nền tảng để học tiếp các kiến trúc nâng cao như Microservices, GraphQL và triển khai ứng dụng lên môi trường Production.
Tổng kết
Qua bài học này, bạn đã biết:
✅ Node.js là JavaScript Runtime chạy ngoài trình duyệt.
✅ Node.js sử dụng V8 Engine để thực thi JavaScript với hiệu năng cao.
✅ Event Loop và Non-blocking I/O là hai nền tảng quan trọng giúp Node.js xử lý nhiều kết nối đồng thời.
✅ Node.js rất phù hợp để xây dựng REST API, backend web và các ứng dụng realtime.
✅ Đây là nền tảng của nhiều framework hiện đại như Express, NestJS và Fastify.
Bài tập thực hành
Bài 1
Tìm hiểu lịch sử ra đời của Node.js và cho biết vì sao nó đã thay đổi cách xây dựng ứng dụng web phía máy chủ.
Năm 2009, Ryan Dahl giới thiệu Node.js.
Ý tưởng rất đơn giản:
Tại sao JavaScript chỉ được chạy trong trình duyệt?
Nếu JavaScript có thể chạy trực tiếp trên hệ điều hành thì sao?
Đó chính là Node.js.
Node.js sử dụng một luồng JavaScript chính (single-threaded) kết hợp với Event Loop và các API bất đồng bộ để xử lý rất nhiều kết nối cùng lúc.
Bài 2
Phân biệt JavaScript chạy trong trình duyệt và JavaScript chạy bằng Node.js.
JavaScript chạy trong trình duyệt chủ yếu dùng để:
xử lý giao diện
tạo hiệu ứng
kiểm tra dữ liệu nhập
tương tác với người dùng
NodeJS:
đọc file trên máy chủ
kết nối cơ sở dữ liệu
tạo Web Server
xây dựng REST API
| JavaScript Browser | Node.js |
|---|---|
| DOM | Không có DOM |
| window | Không có window |
| document | Không có document |
| alert() | Không có |
| fs | Có |
| http | Có |
| process | Có |
Bài 3
Giải thích bằng lời của bạn:
JavaScript Runtime là gì?
JavaScript Runtime là môi trường để thực thi mã JavaScript.
Ví dụ: Chrome Runtime hoặc Node.js Runtime.V8 Engine là gì?
V8 là engine của Google dùng để biên dịch JavaScript thành mã máy giúp chạy nhanh hơn.Event Loop là gì?
1. JavaScript chạy trên một luồng chính.
2. Các tác vụ I/O được thực hiện bất đồng bộ với sự hỗ trợ của hệ điều hành vàlibuv.
3. Event Loop điều phối khi nào các callback hoặc promise tiếp tục được thực thi.
Non-blocking I/O là gì?
Không phải chờ thao tác I/O hoàn thành mới tiếp tục chạy chương trình; trong lúc chờ, Node.js có thể xử lý các công việc khác.
Bài 4
Hãy liệt kê ít nhất 5 loại ứng dụng mà theo bạn Node.js là một lựa chọn phù hợp, và giải thích ngắn gọn lý do.
- REST API: xử lý nhiều request đồng thời.
- Chat Realtime: kết hợp WebSocket cho trao đổi tức thời.
- Streaming: hỗ trợ Stream giúp truyền dữ liệu hiệu quả.
- IoT: xử lý nhiều kết nối từ thiết bị.
- Serverless Functions: khởi động nhanh, phù hợp cho các hàm xử lý ngắn.
📖 Bài tiếp theo: Bài 02 — Cài đặt Node.js LTS (2026): Node.js, npm, npx, VS Code và Terminal.
x1quay về MỤC LỤC




Không có nhận xét nào:
Đăng nhận xét