Node.js là gì? Kiến trúc client-server và cách cài đặt Node.js
- 22-07-2026
- Toanngo92
- 0 Comments
Node.js cho phép chạy JavaScript bên ngoài trình duyệt và là một nền tảng phổ biến để xây dựng API, dịch vụ web, công cụ dòng lệnh và ứng dụng thời gian thực. Để hiểu Node.js, trước tiên cần nắm được kiến trúc client–server, vai trò của web server và điểm khác biệt giữa xử lý phía trình duyệt với xử lý phía máy chủ.
Mục lục
1. Kiến trúc client–server là gì?
Trong kiến trúc client–server, client gửi yêu cầu qua mạng và server tiếp nhận, xử lý rồi trả kết quả. Client có thể là trình duyệt, ứng dụng di động hoặc chương trình desktop. Server có thể cung cấp trang web, API, tệp, dữ liệu hoặc dịch vụ xác thực.

- Client: hiển thị giao diện, nhận thao tác người dùng và gửi yêu cầu.
- Network: môi trường truyền dữ liệu, thường sử dụng HTTP hoặc HTTPS.
- Server: thực thi logic nghiệp vụ, truy cập cơ sở dữ liệu và tạo phản hồi.
Ví dụ, khi người dùng đăng nhập, trình duyệt gửi email và mật khẩu tới server qua HTTPS. Server kiểm tra thông tin, tạo phiên đăng nhập hoặc token rồi trả kết quả. Mật khẩu không nên được kiểm tra chỉ ở phía client vì mã phía trình duyệt có thể bị xem và thay đổi.
2. Lập trình phía máy chủ
Lập trình phía máy chủ (server-side programming) là việc viết mã chạy trên server để xử lý yêu cầu của client. Các nhiệm vụ điển hình gồm xác thực người dùng, đọc và ghi cơ sở dữ liệu, xử lý thanh toán, gửi email, phân quyền và tạo nội dung động.

| Phía client | Phía server |
|---|---|
| Hiển thị giao diện và tương tác | Xử lý nghiệp vụ và dữ liệu |
| Chạy trong trình duyệt hoặc ứng dụng | Chạy trên máy chủ hoặc nền tảng đám mây |
| Không nên chứa bí mật | Có thể quản lý biến môi trường và thông tin xác thực |
| HTML, CSS, JavaScript | Node.js, Java, PHP, Python, .NET và nhiều công nghệ khác |
3. Web server làm những gì?
Web server tiếp nhận yêu cầu HTTP, xác định tài nguyên hoặc hàm xử lý tương ứng rồi gửi phản hồi. Nó có thể phục vụ tệp tĩnh, chuyển yêu cầu đến ứng dụng, quản lý kết nối đồng thời, ghi log và phối hợp với cache, cơ sở dữ liệu hoặc dịch vụ khác.

Mô hình truyền thống có thể dành một thread hoặc process cho mỗi nhóm kết nối. Node.js sử dụng event loop và I/O không chặn để một tiến trình có thể điều phối nhiều kết nối. Điều này không có nghĩa mọi công việc đều “chạy song song trên một thread”: hệ điều hành, thread pool và worker thread có thể tham gia xử lý ở phía dưới.
4. Node.js là gì?
Node.js là môi trường chạy JavaScript mã nguồn mở, đa nền tảng, được xây dựng trên V8. Node.js cung cấp các API để làm việc với hệ thống tệp, mạng, tiến trình, luồng dữ liệu và nhiều chức năng mà JavaScript trong trình duyệt không trực tiếp cung cấp.
- JavaScript ở cả frontend và backend: giảm chi phí chuyển đổi ngôn ngữ trong một số nhóm phát triển.
- I/O bất đồng bộ: phù hợp với API, proxy, chat và ứng dụng có nhiều thao tác mạng.
- Hệ sinh thái npm: cung cấp thư viện và công cụ cho nhiều loại dự án.
- Đa nền tảng: hoạt động trên Windows, macOS và Linux.
- Streaming: có thể xử lý dữ liệu theo từng phần thay vì luôn nạp toàn bộ vào bộ nhớ.
Node.js đặc biệt hiệu quả với tác vụ thiên về I/O. Với phép tính CPU nặng, cần cân nhắc worker thread, hàng đợi công việc hoặc tách sang dịch vụ chuyên dụng để tránh chặn event loop.
5. Cài đặt Node.js LTS trên Windows
Giáo trình minh họa Node.js 20.7.0, nhưng phiên bản này đã cũ. Tại thời điểm cập nhật bài viết, nhánh Node.js 24 là LTS. Hãy kiểm tra phiên bản LTS mới nhất tại trang tải chính thức của Node.js thay vì cố định vào một số phiên bản cũ.

- Mở trang tải Node.js và chọn bản LTS cho Windows.
- Tải bộ cài
.msiphù hợp với kiến trúc máy. - Chạy bộ cài, đọc điều khoản và giữ các thành phần mặc định nếu chưa có yêu cầu riêng.
- Đảm bảo tùy chọn thêm Node.js vào biến
PATHđược bật. - Hoàn tất cài đặt rồi mở một cửa sổ Terminal hoặc PowerShell mới.
Không cần tự thêm đường dẫn thủ công nếu bộ cài đã cấu hình PATH. Nếu lệnh node chưa được nhận diện, hãy đóng và mở lại terminal trước khi chỉnh biến môi trường.
6. Kiểm tra Node.js và npm
node --version
npm --version

node là chương trình chạy JavaScript, còn npm là trình quản lý package thường được cài kèm. Có thể kiểm tra vị trí chương trình trên Windows bằng:
where node
where npm
7. Chạy chương trình Node.js đầu tiên
Tạo tệp app.js:
const http = require('node:http');
const server = http.createServer((request, response) => {
response.writeHead(200, { 'Content-Type': 'text/plain; charset=utf-8' });
response.end('Xin chào từ Node.js!');
});
server.listen(3000, '127.0.0.1', () => {
console.log('Server đang chạy tại http://127.0.0.1:3000');
});
Chạy chương trình:
node app.js
Mở http://127.0.0.1:3000 trên trình duyệt. Trình duyệt đóng vai trò client, chương trình Node.js là server; chuỗi “Xin chào từ Node.js!” chính là response.
8. Lỗi thường gặp khi mới cài đặt
nodeis not recognized: mở terminal mới, kiểm traPATHhoặc cài lại từ nguồn chính thức.- Cổng 3000 đang được sử dụng: đổi sang cổng khác, ví dụ 3001.
- PowerShell chặn script npm: tìm hiểu chính sách thực thi của máy; không tắt bảo vệ toàn hệ thống chỉ để chạy một lệnh không rõ nguồn.
- Dùng nhầm bản Current: người mới nên ưu tiên LTS trừ khi dự án yêu cầu tính năng mới.
9. Tổng kết
- Client gửi request và server trả response qua mạng.
- Mã server xử lý dữ liệu, xác thực và logic nghiệp vụ.
- Node.js chạy JavaScript bên ngoài trình duyệt và phù hợp với ứng dụng thiên về I/O.
- Event loop giúp điều phối nhiều tác vụ không chặn, nhưng công việc CPU nặng vẫn cần chiến lược riêng.
- Nên cài nhánh Node.js LTS từ trang chính thức và kiểm tra bằng
node --version,npm --version.

