Menu
CoddyTech

Cấu hình

Thuộc phần REST API trong hành trình Node.js của Coddy. Bài học 23 trên 25.

Trên laptop của bạn, máy chủ lắng nghe trên cổng 3000. Dịch vụ lưu trữ khởi chạy máy chủ bằng node server.js và tự chọn cổng, rồi truyền cổng đó vào môi trường dưới dạng PORT. Máy chủ lưu trữ cũng thỉnh thoảng gọi một tuyến đường như GET /health và khởi động lại máy chủ khi máy chủ ngừng phản hồi.

// MAX_UPLOAD_MB=5 node server.js
const maxUpload = Number(process.env.MAX_UPLOAD_MB ?? 2);
const shopName = process.env.SHOP_NAME ?? 'My Shop';

Mọi giá trị trong process.env đều là chuỗi, và '5' + 1 là '51', vì vậy hãy chuyển đổi số bằng Number. Đọc các cài đặt trong một tệp, config.js, rồi nhập chúng ở mọi nơi khác để không phần nào khác truy cập process.env.

challenge icon

Thử thách

Dễ

Trên dịch vụ lưu trữ, máy chủ lưu trữ chọn cổng và truyền các thiết lập cho máy chủ của bạn qua môi trường. Đọc các thiết lập từ môi trường tại một nơi, rồi thêm một tuyến để máy chủ lưu trữ có thể gọi nhằm kiểm tra máy chủ đang hoạt động.

  1. Trong config.js, đọc port từ biến môi trường PORT và pageSize từ PAGE_SIZE. Cả hai đều ở dạng văn bản, vì vậy hãy chuyển chúng thành số. Nếu thiếu biến, giữ nguyên các giá trị hiện tại: 3000 và 10.
  2. Trong server.js, nhập config. Khởi động máy chủ trên config.port và in ra cổng mà máy chủ sử dụng. Với PORT=8080, Console hiển thị chính xác:
    Task tracker API on port 8080
  3. Trong routes/tasks.js, cũng nhập config. Trong tuyến danh sách, nếu yêu cầu không có ?limit=, hãy dùng config.pageSize thay cho 10. Nếu yêu cầu có ?limit=, giá trị đó vẫn được ưu tiên.
  4. Trong server.js, thêm GET /health bên ngoài bộ định tuyến tác vụ. Tuyến này trả về trạng thái 200 và chính xác:
    { "status": "ok" }

Bài học này chạy với PORT=8080 và PAGE_SIZE=2.

Thử ngay: nhấn Run, Console sẽ in ra Task tracker API on port 8080. GET /api/v1/tasks trả về 2 tác vụ với "total": 3 và "pages": 2. GET /api/v1/tasks?limit=3 trả về cả 3 tác vụ. GET /health trả về { "status": "ok" }.

Tự làm thử

// Các thiết lập thay đổi giữa máy tính xách tay của bạn và máy chủ.
// Đọc từng thiết lập từ process.env, giữ các giá trị này làm mặc định.
export const config = {
    port: 3000,
    pageSize: 10,
};
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong REST API

Tự luyện tập: Playground Express