Nestjs sharing nltv
nestjs logo

Giới thiệu NestJs

31 tháng 8 năm 2021
What is NestJs

NestJs là gì?#

  • Nest (NestJS) là một framework để xây dựng các ứng dụng server-side bằng Node.js hiệu quả, và dể mở rộng. Nó sử dụng ngôn ngữ bậc cao của javascript là TypeScript (nhưng vẫn cho phép các nhà phát triển sử dụng JavaScript thuần túy) và kết hợp các tính chất của OOP (Lập trình hướng đối tượng), FP (Lập trình chức năng) và FRP (Lập trình phản ứng chức năng).

  • Về bản chất Nest sử dụng các framework máy chủ HTTP mạnh mẽ như là Express (mặc định) và có thể tùy chọn cấu hình để sử dụng Fastify.

  • Nest cung cấp một tầng trừu tượng trên các framework Node.js phổ biến này (Express / Fastify), nhưng cũng hỗ trợ API của họ trực tiếp cho nhà phát triển. Điều này cho phép các nhà phát triển tự do sử dụng vô số các mô-đun của bên thứ ba có sẵn cho nền tảng cơ bản. Có thể hiểu là tất cả các package mà chúng ta cài thêm khi sử dụng Express / Fastify đều có thể tích hợp dể dàng vào Nestjs.

Tạo sao NestJs lại ra đời?#

  • Trong những năm gần đây, nhờ có Node.js, JavaScript đã trở thành ngôn ngữ chung cho cả Frontend và Backend. Điều này đã tạo ra các dự án tuyệt vời như Angular, React và Vue, giúp cải thiện năng suất của nhà phát triển và cho phép tạo ra các ứng dụng frontend nhanh, có thể mở rộng. Tuy nhiên, trong khi có rất nhiều thư viện, công cụ tuyệt vời tồn tại cho Node, nhưng không có thư viện nào giải quyết hiệu quả vấn đề chính là kiến trúc.

  • Nest cung cấp một kiến trúc ứng dụng vượt trội cho phép các nhà phát triển và các teams tạo ra các ứng dụng có thể kiểm tra cao, có thể mở rộng và dễ bảo trì. Kiến trúc này được lấy cảm hứng từ Angular.

Các lợi ích của NestJs#

  • Dể sử dụng, có cấu trúc sẵn, nhà phát triển chỉ cần tập trung nghiệp vụ phần mềm.

  • Cung cấp Command Line Interface (CLI) mạnh mẽ để tăng năng suất và dễ dàng phát triển.

  • Tài liệu chi tiết dể hiểu và duy trì liên tục.

  • Hỗ trợ hàng chục modules dành riêng cho Nest giúp bạn dễ dàng tích hợp với các công nghệ và khái niệm phổ biến như TypeORM, Mongoose, GraphQL, Logging, Validation, Caching, WebSockets và hơn thế nữa.