Xem này: dựng server
Express là package phổ biến nhất để xây server Node.js – rút công việc còn vài dòng. Server là dự án riêng, tách app React (nhớ: frontend và backend là hai nửa). Trong terminal:
cd Desktop
mkdir my-server
cd my-server
npm init -y
npm install express
mkdirtạo thư mục (make directory),npm init -ydựng dự án Node.js mới (tạopackage.json),npm install expresstải Express.
Mở thư mục trong VS Code và tạo file server.js:
const express = require("express");
const app = express();
// When someone sends a GET to /api/hello, respond
app.get("/api/hello", (request, response) => {
response.json({ message: "Hi! This is your own server. 🎉" });
});
app.listen(3900, () => {
console.log("Server running at http://localhost:3900");
});
Chạy:
node server.js
Và mở http://localhost:3900/api/hello trong trình duyệt. Thấy phản hồi JSON? Bạn vừa xây server. Không phép màu – 10 dòng.
Trong code:
require("express")– mượn package (phiên bản phía server củaimport).app.get("/api/hello", ...)– “trả lời GET tại địa chỉ này.” Cặp địa chỉ + phản hồi gọi endpoint.response.json({...})– gửi JSON về.app.listen(3900)– lắng nghe cổng 3900. (Vite chạy 3901, server 3900 – hai chương trình không cùng cổng.)
Dừng server bằng Ctrl+C. Lưu ý: sau mỗi đổi code phải dừng và chạy lại – server không phải Vite, không tự tải lại.
Xem này: server có dữ liệu
Server thường phát dữ liệu. Thêm endpoint thứ hai trước listen:
const results = [
{ opponent: "Lakeside", score: "3:1", home: true },
{ opponent: "Northgate", score: "2:2", home: false },
{ opponent: "Elmwood", score: "4:0", home: true },
];
app.get("/api/results", (request, response) => {
response.json(results);
});
Khởi động lại server và mở http://localhost:3900/api/results – dữ liệu của bạn, qua API. Mọi website lớn hoạt động vậy (chỉ dùng database thay mảng).
Đến lượt bạn 💪
- Chạy server theo hướng dẫn.
- Thêm endpoint dữ liệu dự án: 🏫
/api/menu(mảng món trong tuần) · 🙋/api/favorites(game/sách hay nhất) · 🌍/api/trips(danh sách chuyến) · ⚽/api/results(kết quả trận). - Thêm endpoint vui
/api/randomtrả tin khác mỗi lần:
const messages = ["We're winning today!", "Practice at 5 PM!", "Let's go, Eagles!"];
app.get("/api/random", (request, response) => {
const random = messages[Math.floor(Math.random() * messages.length)];
response.json({ message: random });
});
- Thử mọi endpoint trong trình duyệt – rồi gọi một cái bằng
fetch()từ console, như bài trước.
“Cannot GET /api/…” nghĩa là endpoint không tồn tại – kiểm tra lỗi chính tả địa chỉ và đã khởi động lại server sau khi sửa chưa. “EADDRINUSE” nghĩa là cổng 3900 đang dùng – có thể server cũ còn chạy terminal khác; tìm và dừng (Ctrl+C).
Tự kiểm tra: Server chạy cổng 3900 và trả JSON trên vài endpoint. Bạn biết frontend, đang bắt đầu backend – còn nối chúng. Bài sau làm đúng vậy với sổ lưu bút.
Điều cần nhớ từ bài học này
- Server Express:
npm init -y,npm install express,node server.js, dừng Ctrl+C, đổi code thì khởi động lại. - Endpoint = địa chỉ + phản hồi:
app.get("/api/something", (request, response) => response.json(...)). - Frontend (3901) và backend (3900) là hai chương trình, hai cổng.
© 2026 Ing. Martin Polak / AlgoRhino · Điều khoản sử dụng nội dung