Module http
Thuộc phần Kiến thức cơ bản về Express trong hành trình Node.js của Coddy. Bài học 2 trên 23.
Express thực hiện những công việc bạn không nhìn thấy. Bạn có thể thấy điều đó qua module node:http của Node, nền tảng mà Express được xây dựng trên đó.
import http from 'node:http';
const server = http.createServer((req, res) => {
if (req.url === '/repairs') {
res.statusCode = 503;
res.end('Repairs are closed today');
return;
}
res.end('Welcome to the bike shop');
});
server.listen(3000);Node gọi hàm (function) cho mỗi yêu cầu. Không có tuyến nào cả: bạn tự so sánh req.url, đường dẫn được yêu cầu. res.statusCode là mã trạng thái (status code), một con số cho biết kết quả: 200 nghĩa là thành công, 404 nghĩa là không tìm thấy. res.end gửi nội dung phản hồi và kết thúc phản hồi, vì vậy hãy đặt trạng thái trước khi gọi nó.
Thử thách
DễTrước khi tìm hiểu thêm về Express, bạn sẽ viết một máy chủ nhỏ bằng module node:http có sẵn trong Node để thấy Express làm giúp bạn những gì.
- Trong
server.js, bên trong hàm được truyền chohttp.createServer, hãy kiểm trareq.url. Nếu giá trị là/, hãy gửi văn bảnHome. - Với mọi đường dẫn khác, hãy đặt mã trạng thái thành 404 rồi gửi văn bản
Not found. Hãy đặt trạng thái trước khi gửi. Khi phản hồi đã kết thúc, bạn không thể thay đổi trạng thái.
Thử nhé: Nhấn Chạy rồi gửi /. Bạn sẽ thấy Home với trạng thái 200. Gửi /nope, rồi /recipes/today. Cả hai đều sẽ hiển thị Not found với trạng thái 404. Trong bài học 1, Express đã gửi mã 404 này thay bạn; ở đây, bạn sẽ tự viết.
Tự làm thử
import http from 'node:http';
const server = http.createServer((req, res) => {
// Trả về Home cho đường dẫn / và 404 Not found cho mọi đường dẫn khác.
res.end('Hello from Node');
});
server.listen(3000, () => {
console.log('Listening on port 3000');
});
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 Kiến thức cơ bản về Express
1Máy chủ đầu tiên của bạn
Xin chào, ExpressModule httpThêm tuyến đườngTham số tuyến đườngTự luyện tập: Playground Express