# 1.4. Giới thiệu về express.js và các tính năng chính

**1. Express.js là gì?**

<figure><img src="https://1796791114-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Flyhx2xFzAFHFjiht3I2N%2Fuploads%2FBBVxSephWpwgmDXEr9og%2Fimage.png?alt=media&#x26;token=6be49a73-226d-408b-b318-594574904a88" alt=""><figcaption></figcaption></figure>

* **Express.js** là một framework web cho Node.js giúp xây dựng các ứng dụng web một cách dễ dàng và nhanh chóng.
* Express giúp giảm thiểu việc viết lại các cấu trúc phức tạp khi làm việc với HTTP server trong Node.js.

**2. Các tính năng chính của Express.js**

* **Routing**: Xử lý các yêu cầu đến từ nhiều URL khác nhau.
* **Middleware**: Giúp xử lý các yêu cầu HTTP và tùy chỉnh luồng xử lý trước khi trả về kết quả.
* **Templating engine**: Hỗ trợ các view engine như Pug, EJS.
* **Static files**: Quản lý và cung cấp các file tĩnh như CSS, JavaScript, hình ảnh.

3. Tại sao nên sử dụng express.js

* **Đơn giản hóa việc quản lý route**\
  Express cho phép định nghĩa các route dễ dàng, không cần kiểm tra thủ công URL và phương thức HTTP.
* **Tích hợp middleware mạnh mẽ**\
  Express có hệ thống middleware cho phép xử lý request/response dễ dàng, từ việc parse JSON đến xử lý xác thực.
* **Code ngắn gọn hơn**\
  Express giúp giảm thiểu lượng mã cần viết, tăng hiệu quả và dễ bảo trì.
* **Quản lý tệp tĩnh dễ dàng**\
  Chỉ với một dòng lệnh, bạn có thể phục vụ các tệp tĩnh (CSS, JS) trong Express.
* **Cộng đồng và hệ sinh thái phong phú**\
  Express có cộng đồng lớn, hỗ trợ nhiều thư viện mở rộng, plugin giúp tăng tốc phát triển.
* **Xử lý lỗi và bảo mật tốt hơn**\
  Express tích hợp sẵn các công cụ giúp xử lý lỗi và bảo mật hiệu quả hơn so với Node.js thuần.

Tham khảo các tài liệu chính thức của thư viện express: <https://expressjs.com/>
