Routing trong Express.js: Xử lý Yêu cầu từ Người dùng

Trong Express.js, Route là một khái niệm quan trọng giúp bạn xác định cách ứng dụng của bạn xử lý các yêu cầu HTTP từ người dùng. Các Route cho phép bạn chỉ định các hành động cụ thể khi người dùng gửi các yêu cầu đến các URL cụ thể trên ứng dụng của bạn.

Bước 1: Tạo Một Route Cơ Bản

Để tạo một Route trong Express.js, bạn sử dụng phương thức app.METHOD(PATH, HANDLER) của đối tượng ứng dụng (app) để đăng ký một Route cho một phương thức HTTP cụ thể METHOD và một đường dẫn (PATH). HANDLER là một hàm xử lý (handler function) sẽ được gọi khi yêu cầu đến Route đó.

Ví dụ, để tạo một Route xử lý yêu cầu GET đến /hello, bạn có thể sử dụng mã sau:

app.get('/hello', (req, res) => {
  res.send('Xin chào, đây là Route /hello!');
});

Bước 2: Xử Lý Yêu Cầu và Phản Hồi

Trong hàm xử lý (handler function), bạn có thể xử lý yêu cầu từ người dùng và phản hồi bằng cách sử dụng đối tượng req (request) và res (response). Đối tượng req chứa thông tin về yêu cầu đến, chẳng hạn như tham số trên URL, dữ liệu gửi kèm, thông tin địa chỉ IP của người gửi, v.v. Đối tượng res chứa các phương thức để phản hồi lại yêu cầu, chẳng hạn như res.send(), res.json(), res.render(), v.v.

Bước 3: Điều Hướng Nhiều Route

Express.js cho phép bạn định nghĩa nhiều Route cho cùng một URL với các phương thức HTTP khác nhau. Ví dụ:

app.get('/hello', (req, res) => {
  res.send('Xin chào, đây là Route GET /hello!');
});

app.post('/hello', (req, res) => {
  res.send('Xin chào, đây là Route POST /hello!');
});

Bước 4: Điều Hướng Thông Qua Tham Số

Bạn cũng có thể định nghĩa các Route chứa các tham số động, được xác định bởi dấu hai chấm (:). Ví dụ:

app.get('/users/:id', (req, res) => {
  const userId = req.params.id;
  res.send(`Xin chào, đây là Route GET /users/${userId}!`);
});

Khi người dùng gửi yêu cầu đến /users/123, biến userId sẽ có giá trị là "123".

Bước 5: Điều Hướng Từ Tệp Tách Biệt

Trong một dự án lớn, bạn có thể muốn tách các Route vào các tệp riêng biệt để giữ cho mã nguồn của bạn gọn gàng và dễ quản lý. Bạn có thể sử dụng module.exports để định nghĩa Route trong các tệp riêng biệt và sau đó import chúng vào tệp chính. Ví dụ:

// routes/users.js
const express = require('express');
const router = express.Router();

router.get('/profile', (req, res) => {
  res.send('Đây là Route /profile trong tệp users.js!');
});

module.exports = router;
// app.js
const usersRouter = require('./routes/users');
app.use('/users', usersRouter);

Bước 6: Xử Lý Route Không Tồn Tại

Cuối cùng, nếu người dùng yêu cầu một Route không tồn tại, bạn có thể định nghĩa một Route 404 để xử lý. Điều này được thực hiện bằng cách đặt một Route mặc định ở cuối tệp chính của bạn:

app.use((req, res, next) => {
  res.status(404).send('Route không tồn tại!');
});

 

Chúng ta đã tìm hiểu cách tạo và xử lý các Route trong Express.js. Bằng cách sử dụng tính năng này, bạn có thể tùy chỉnh và xử lý các yêu cầu từ người dùng một cách linh hoạt và mạnh mẽ, giúp ứng dụng của bạn trở nên mềm dẻo và dễ mở rộng. Hãy tiếp tục khám phá và sử dụng các Route trong việc xây dựng các ứng dụng web phong phú và tuyệt vời!