# Giới thiệu NestJS

**Giới thiệu về NestJS**

NestJS là một framework Node.js được thiết kế để xây dựng các ứng dụng server-side hiệu quả, dễ bảo trì và có khả năng mở rộng. NestJS sử dụng TypeScript như ngôn ngữ lập trình chính, đồng thời hỗ trợ cả JavaScript, và kết hợp các yếu tố của lập trình hướng đối tượng (OOP), lập trình hàm (FP), và lập trình hàm phản ứng (FRP).

#### **Các đặc điểm nổi bật của NestJS:**

1. **Kiến trúc Module**: NestJS áp dụng kiến trúc module, giúp phân chia ứng dụng thành các phần nhỏ, độc lập. Điều này giúp dễ dàng tổ chức mã nguồn và tăng cường khả năng mở rộng.
2. **Hỗ trợ TypeScript**: NestJS được xây dựng với TypeScript, giúp phát triển ứng dụng mạnh mẽ hơn nhờ tính năng kiểm tra kiểu và phát hiện lỗi sớm. Tuy nhiên, NestJS cũng cho phép lập trình viên sử dụng JavaScript thuần.
3. **Tích hợp với các Framework HTTP**: NestJS sử dụng các framework HTTP phổ biến như Express (mặc định) và có thể cấu hình để sử dụng Fastify, giúp đáp ứng các nhu cầu khác nhau của ứng dụng.
4. **Khả năng mở rộng và bảo trì**: NestJS giúp phát triển các ứng dụng có cấu trúc rõ ràng và dễ bảo trì nhờ vào việc áp dụng các nguyên tắc thiết kế phần mềm như SOLID và Dependency Injection.
5. **Hỗ trợ các công nghệ hiện đại**: NestJS tích hợp dễ dàng với các công nghệ và thư viện hiện đại như TypeORM, Mongoose, GraphQL, giúp phát triển các ứng dụng API mạnh mẽ và linh hoạt.
6. **Cộng đồng và tài liệu phong phú**: NestJS có cộng đồng hỗ trợ rộng rãi và tài liệu chi tiết, giúp lập trình viên dễ dàng tìm kiếm sự hỗ trợ và giải quyết vấn đề.

NestJS cung cấp một nền tảng mạnh mẽ và linh hoạt cho việc xây dựng các ứng dụng server-side, giúp lập trình viên phát triển các ứng dụng web hiện đại với hiệu suất và khả năng mở rộng cao.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.quangkhoi1228.com/nestjs/gioi-thieu-nestjs.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
