Giới thiệu về NestJS [+6 Learning Resources]

NestJS là một khung công tác Node.js tiến bộ để xây dựng các ứng dụng phía máy chủ có thể mở rộng, hiệu quả và đáng tin cậy.
NestJS được xây dựng để loại bỏ các cơ sở mã vô tổ chức. Cấu trúc mô-đun của nó giúp dễ dàng tổ chức mã thành các mô-đun khác nhau.
NestJS được xây dựng trên Bản mô tả và sử dụng ExpressJS dưới mui xe. NestJS được yêu thích bởi các nhà phát triển muốn tận dụng sức mạnh kiểm tra kiểu của TypeScript. NestJS kết hợp các khía cạnh khác nhau của Lập trình phản ứng chức năng (FRP), Lập trình hướng đối tượng (OOP) và Lập trình chức năng (FP).
Tại sao lại là NestJS?
NestJS thân thiện với người mới bắt đầu vì nó có cấu trúc tốt và các công cụ Giao diện dòng lệnh (CLI) dễ sử dụng. Do đó, các nhà phát triển có thể tạo ra một tính năng mới bằng một lệnh duy nhất trong khi sử dụng khung Node.js này.
NestJS cung cấp mô-đun, dịch vụ, bộ điều khiển và cọc thử nghiệm để giúp bạn bắt đầu. Bạn cũng có thể dựa vào nhiều bản mẫu và mẫu có sẵn để giúp hành trình phát triển của bạn dễ dàng hơn.
Quá trình học NestJS sẽ dễ dàng đối với những người quen thuộc với các vòng lặp, cú pháp và điều kiện trong JavaScript và Angular.
Các tính năng của NestJS
Được xây dựng trên TypeScript
NestJS được xây dựng trên Typescript, một chỉ số trên của JavaScript. Bản mô tả cung cấp trải nghiệm phát triển tốt hơn vì bạn không phải kiểm tra lỗi theo cách thủ công mỗi khi bạn thay đổi điều gì đó trong mã. Typescript về cơ bản cung cấp tất cả các tính năng của JavaScript nhưng cũng đi kèm với một số chức năng bổ sung.
Vùng chứa tiêm phụ thuộc
Nội xạ phụ thuộc tách biệt việc khởi tạo các đối tượng mà lớp sử dụng với chính lớp đó. Trong trường hợp như vậy, lớp được gọi là ‘máy khách’ trong khi các thành phần phụ thuộc của lớp được gọi là ‘dịch vụ’. DI tích hợp này trong NestJS làm cho các ứng dụng trở nên hiệu quả hơn và theo mô-đun.
Giao diện dòng lệnh mạnh mẽ (CLI)
Bạn có thể khởi tạo, phát triển và duy trì tất cả các ứng dụng NestJS của mình bằng cách sử dụng NestCLI. Có rất nhiều việc bạn có thể làm khi sử dụng Nest CLI, chẳng hạn như;
- Giàn giáo công trình
- Phục vụ dự án trong chế độ phát triển
- Xây dựng và đóng gói ứng dụng cho phân phối sản xuất
mô đun hóa
Mọi ứng dụng NestJS đều có ít nhất một mô-đun. Mô-đun ‘root’ là cơ bản nhất. Trong một ứng dụng NestJS điển hình, mọi phần logic của ứng dụng sẽ nằm trong cùng một ranh giới miền (mô-đun). Cài đặt như vậy giúp dễ dàng tổ chức các thành phần trong đó một ứng dụng sẽ có nhiều mô-đun với một bộ khả năng liên quan chặt chẽ.
Kiểm tra đơn vị
Kiểm thử tự động đi kèm với vô số lợi ích. Tuy nhiên, quá trình thiết lập các bài kiểm tra như vậy có thể phức tạp hơn nhiều. NestJS có nhiều tính năng khác nhau để giúp các nhóm xây dựng và tự động hóa các bài kiểm tra. Điểm hay của NestJS là nó có thể được sử dụng với nhiều công cụ kiểm tra khác nhau. Hệ thống tiêm phụ thuộc Nest được cung cấp trong quá trình thử nghiệm để dễ dàng mô phỏng các thành phần.
cơ sở dữ liệu agonistic
Bạn có thể dễ dàng tích hợp với bất kỳ cơ sở dữ liệu SQL hoặc NoSQL nào dựa trên nhu cầu và sở thích của mình khi làm việc với NestJS. Việc kết nối NestJS với cơ sở dữ liệu rất đơn giản vì bạn chỉ cần tải trình điều khiển Node.js thích hợp.
Hỗ trợ các thư viện khác nhau
NestJS tương thích với nhiều công cụ khác nhau, giúp tăng tốc độ phát triển ứng dụng. Khung này hỗ trợ Ghi nhật ký, Xác thực, Bộ nhớ đệm, WebSockets, TypeORM, Mongoose và GraphQL mà không cần cấu hình bổ sung.
Kiến trúc và quy trình làm việc của NestJS
NestJS có kiến trúc 3 lớp bao gồm bộ điều khiển, nhà cung cấp và mô-đun. Do đó, các nhà phát triển có thể tạo mã sạch không trùng lặp.
Nguồn hình ảnh: lập trình tốt hơn
Bộ điều khiển
Bộ điều khiển trong NestJS đóng vai trò là cầu nối giữa các yêu cầu và phản hồi của khách hàng. Cơ chế định tuyến sẽ luôn hướng yêu cầu đến bộ điều khiển thích hợp bất cứ khi nào yêu cầu HTTP được thực hiện. Khung sử dụng các bộ trang trí và các lớp để tạo bộ điều khiển. Mỗi phương thức lớp sau đó được ánh xạ tới các tuyến để nhận một yêu cầu cụ thể.
nhà cung cấp
Nhà cung cấp có thể được mô tả là nguyên tắc cơ bản của NestJS. Các nhà cung cấp được đưa vào dưới dạng phụ thuộc và tạo mối quan hệ giữa các đối tượng khác nhau. Các lớp trong NestJS, chẳng hạn như trình trợ giúp, dịch vụ hoặc kho lưu trữ, có thể được coi là trình cung cấp sau khi trình trang trí `@Injectable()` đã được thêm vào. Các nhà cung cấp như vậy cũng có thể được đưa vào một lớp thông qua hàm tạo và NestJS sẽ giải quyết các phần phụ thuộc.
mô-đun
Một mô-đun trong NestJS tập hợp một tập hợp các khả năng có liên quan chặt chẽ với nhau. Mọi ứng dụng NestJS đều có một mô-đun gốc được sử dụng làm điểm vào. Việc sử dụng nhiều mô-đun rất được khuyến khích nếu bạn muốn mã có tổ chức và dễ đọc. Trình trang trí `@Module()` của Nest xác định mô-đun và cũng cung cấp thông tin như phần phụ thuộc, bộ điều khiển và nhà cung cấp đi kèm với mô-đun đó.
Bắt đầu với NestJS
Đảm bảo đã cài đặt Node.js và npm. Bạn cần một môi trường thời gian chạy và Node.js hoàn hảo cho thiết lập này. Bạn cần phiên bản >= 12, ngoại trừ v13. Bạn có thể kiểm tra xem mình đã cài đặt Node.js và npm chưa thông qua các lệnh này;
node -v
npm -v
Nếu cả hai được cài đặt, bạn sẽ nhận được kết quả gần như thế này
Nếu bạn không có chúng, hãy cài đặt chúng thông qua trang chính thức. May mắn thay, cả Node.js và npm đều được cài đặt cùng nhau.
- Cài đặt Nest CLI. Sử dụng các lệnh sau để đặt CLI và dự án;
npm i -g @nestjs/cli
nest new project-name
Chúng tôi chọn tên dự án là mynestapp cho mục đích trình diễn. NestJS mang đến cho bạn cơ hội làm việc với Typescript hoặc Vanilla JavaScript. Chọn những gì phù hợp với bạn và nhấn enter. Khi ứng dụng đã được dàn dựng, cấu trúc tệp sẽ được thiết lập và thư mục ‘src’ sẽ đi kèm với một số tệp cốt lõi, như được hiển thị trong ảnh chụp màn hình này
- Chạy ứng dụng/thế giới xin chào đầu tiên của bạn
Sau khi cài đặt hoàn tất, hãy chạy các lệnh này để chạy máy chủ phát triển
cd mynestapp
npm run start
Nhập http://localhost:3000/ trên trình duyệt của bạn và “Xin chào thế giới” đầu tiên của bạn trên NestJs sẽ được hiển thị
NestJS: Ưu điểm
- Dễ học. Thật dễ dàng để thành thạo NestJS, đặc biệt nếu bạn đến từ Angular hoặc có hiểu biết chung về JavaScript. Tài liệu chi tiết cũng giúp bạn dễ dàng làm việc thành thạo với khung mạnh mẽ này.
- Linh hoạt. Bạn có thể xây dựng rất nhiều thứ bằng cách sử dụng NestJS. Bạn có thể tạo các ứng dụng MVC, ứng dụng GraphQL, API RESTful và ổ cắm web bằng khung Node.js này.
- Đi kèm với hàng ngàn mô-đun. Các mô-đun được cộng đồng hỗ trợ giúp các nhà phát triển dễ dàng cấu trúc các tính năng khác nhau trong khi tạo các ứng dụng phía máy chủ.
- Phát triển nhanh và kiến trúc tốt. Bạn không cần phải tạo mọi thứ từ đầu khi làm việc với NestJS. Tuy nhiên, cùng một khung có kiến trúc vững chắc để giúp mã của bạn dễ hiểu.
NestJS: Hạn chế
- Không thuận lợi cho những người có nền tảng TypeScript và Angular. NestJS vay mượn rất nhiều từ kiến trúc Angular và những người không có kiến thức như vậy có thể mất thời gian để hiểu cú pháp và cấu trúc.
- Thiếu trong một số lĩnh vực. NestJS vẫn còn non trẻ và có thể không cạnh tranh thuận lợi với một số framework đã có tên tuổi dựa trên Python và GO.
Các công ty sử dụng NestJS
#1. adidas
Adidas, nhà sản xuất giày và nhà thiết kế, là một trong những công ty sử dụng NestJS. Các tính năng tuyệt vời của NestJS hẳn đã thu hút gã khổng lồ giày này sử dụng nó trên phần phụ trợ của nó.
#2. Capgemini
Capgemini là một công ty đa quốc gia của Pháp cung cấp các dịch vụ tư vấn, công nghệ, gia công phần mềm và chuyên nghiệp. Công ty này sử dụng NestJS trong ngăn xếp công nghệ của mình.
#3. Roche
Roche là một công ty chăm sóc sức khỏe đa quốc gia có hai bộ phận; dược phẩm và chẩn đoán. Roche sử dụng NestJS như một trong những ngăn xếp công nghệ trên trang web chính của mình.
Tài nguyên học tập
#1. NestJS Zero to Hero
NestJS Zero to Hero hướng dẫn các nhà phát triển cách tạo và triển khai các ứng dụng back-end dành cho doanh nghiệp bằng cách sử dụng Typescript và Node.js. Khóa học hướng dẫn cách tạo API, Ủy quyền và Xác thực, ứng dụng Nest thử nghiệm đơn vị và TypeORM để tương tác với cơ sở dữ liệu, cùng nhiều nội dung khác.
#2. NestJS: Hướng dẫn hoàn chỉnh dành cho nhà phát triển
Khóa học này hướng dẫn các nhà phát triển cách tạo API phụ trợ bằng cách sử dụng Nest, TypeScript và TypeORM. Hướng dẫn đầy đủ này có mọi thứ bạn cần từ việc thiết lập mã hóa, thử nghiệm và triển khai ứng dụng NestJS của bạn. Bạn cũng sẽ hiểu rõ về khung web NestJS.
#3. Làm chủ NestJS
Master NestJS hướng dẫn cách phát triển các ứng dụng Node.js cấp doanh nghiệp bằng TypeScript. Khóa học dạy xác thực và tuần tự hóa dữ liệu, cách mã thông báo JWT hoạt động, cách sử dụng NestCLI và trừu tượng hóa cơ sở dữ liệu hiện đại, cùng nhiều nội dung khác.
#4. NestJs trong thực tế (với MongoDB)
NestJS trong Thực hành dạy mọi thứ bạn cần để tìm hiểu về NestJS, từ Mô-đun, Bộ điều khiển, Dịch vụ bảo vệ, Đường ống và Phần mềm trung gian. Khóa học sử dụng phương pháp tiếp cận dựa trên dự án nơi bạn viết mã và lưu trữ mã của mình trên GitHub với các tệp zip có thể tải xuống cho mọi phần.
#5. Nest.js: Khung Node.js lũy tiến
Cuốn sách này giới thiệu cho các nhà phát triển về NestJS và cách tận dụng JavaScript và TypeScript. Cuốn sách được thiết kế theo định dạng hướng dẫn để đảm bảo bạn có thể thiết lập và chạy ứng dụng NestJS của mình ngay lập tức.
#6. Nest.js thực tế: Phát triển các ứng dụng web MVC sạch
Cuốn sách Nest.js thực tế sử dụng phương pháp tiếp cận dựa trên dự án để tạo ứng dụng cửa hàng trực tuyến sử dụng các tính năng NestJS khác nhau. Cuốn sách bao gồm các cuộc thảo luận ngắn, mẹo và cụm từ hữu ích khi tạo ứng dụng NestJS của bạn.
Phần kết luận
Ngoài việc là một khung Node.js mạnh mẽ, NestJS còn là một trong những khung Typescript phổ biến nhất cho các ứng dụng phía máy chủ hiện nay. Việc nó cung cấp các phương pháp mã hóa tốt nhất và kiến trúc phát triển tiêu chuẩn đã khiến nó thu hút rất nhiều kỹ sư muốn tập trung vào xây dựng logic nghiệp vụ khi xây dựng ứng dụng.