Tổng quan – NestJS

First steps

Trong tập hợp các bài viết này, bạn sẽ tìm hiểu các nguyên tắc cơ bản cốt lõi của Nest. Để làm quen với các khối xây dựng cơ bản của ứng dụng Nest, chúng tôi sẽ xây dựng một ứng dụng CRUD cơ bản với các tính năng ở các mức độ khác nhau.

Ngôn ngữ

Chúng tôi yêu thích TypeScript, nhưng trên tất cả – chúng tôi yêu thích Node.js. Đó là lý do tại sao Nest tương thích với cả TypeScript và JavaScript thuần túy. Nest tận dụng các tính năng ngôn ngữ mới nhất, vì vậy, để sử dụng nó với JavaScript thông thường, chúng ta cần có trình biên dịch Babel.

Chúng tôi chủ yếu sẽ sử dụng TypeScript trong các ví dụ mà chúng tôi cung cấp, nhưng bạn luôn có thể chuyển các đoạn mã sang cú pháp JavaScript thuần (chỉ cần nhấp để chuyển nút ngôn ngữ ở góc trên bên phải của mỗi đoạn mã).

Điều kiện tiên quyết

Hãy đảm bảo rằng Node.js (> = 10.13.0, ngoại trừ v13) được cài đặt trên hệ điều hành của bạn.

Cài đặt

Việc thiết lập một dự án mới khá đơn giản với Nest CLI. Khi đã cài đặt npm, bạn có thể tạo một dự án Nest mới bằng các lệnh sau trong thiết bị đầu cuối hệ điều hành của mình:

$ npm i -g @nestjs/cli
$ nest new project-name

Thư mục dự án sẽ được tạo, các root module và một vài tệp tin soạn sẵn khác sẽ được cài đặt, và một thư mục src sẽ được tạo và điển vào một số tệp lõi (core).

Dưới đây là tổng quan ngắn gọn về các tệp cốt lõi đó:

app.controller.tsMột controller cơ bản với một route.
app.controller.spec.tsunit tests cho controller.
app.module.tsroot module của ứng dụng.
app.service.ts Một service cơ bản với một phương thức
main.tsTên tin đi vào của ứng dụng mà nó sử dụng hàm lõi  NestFactory  để tạo một instance ứng dụng Nest.

Main.ts bao gồm một hàm không đồng bộ, sẽ khởi động ứng dụng của chúng tôi:

main.ts

import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';

async function bootstrap() {
  const app = await NestFactory.create(AppModule);
  await app.listen(3000);
}
bootstrap();

Để tạo một instance ứng dụng Nest, ta sử dụng lớp lõi NestFactory. NestFactory trình bày một số phương thức tĩnh mà cho phép tạo một instance ứng dụng. Phương thức create() trả về một đối tượng ứng dụng, đối tượng này đáp ứng INestApplication interface. Đối tượng này cung cấp một tập các phương thức mà nó được mô tả trong chương tiếp theo. Trong ví dụ trên main.ts, chúng ta chỉ cần khởi động HTTP listener, điều này cho phép ứng dụng chờ các request HTTP gửi đến.

Lưu ý rằng một dự án được lồng ghép với NestCLI sẽ tạo ra một cấu trúc dự án ban đầu khuyến khích các nhà phát triển tuân theo quy ước giữ từng module trong thư mục của riêng nó.

Nền tảng

Nest hướng tới mục tiêu trở thành một frameworks nền tảng bất khả tri. Nền tảng độc lập giúp tạo ra các phần logic có thể tái sử dụng mà các nhà phát triển có thể tận dụng trên một số loại ứng dụng khác nhau. Về mặt kỹ thuật, Nest có thể hoạt động với bất kỳ Framework Node HTTP nào sau khi tạo bộ chuyển đổi. Có hai nền tảng HTTP được hỗ trợ ngay lập tức: expressfastify. Bạn có thể chọn một trong những phù hợp nhất với nhu cầu của bạn.

platform-expressExpress là một framework web nổi tiếng cho node. Đó là một thư viện đã được kiểm chứng, sẵn sàng cho việc sản xuất với rất nhiều tài nguyên do cộng đồng thực hiện. @nestjs/platform-express là gói được sử dụng mặc định. Rất nhiều người được phục vụ với Express, và không cần thêm thao tác nào để kích hoạt nó.
platform-fastifyFastify là framework có hiệu suất cao và chi phí thấp, tập trung vào cung cấp hiệu quả và tốc độ tối đa. Đọc thêm tại đây.

Cho dù nên tảng nào được sử dụng, nó sẽ để lộ giao diện ứng dụng riêng của nó, ở đây lần lượt là NestExpressApplicationNestFastifyApplication.

Khi bạn truyền một kiểu vào phương thức NestFactory.create(), như ví dụ bên dưới, đối tượng ứng dụng sẽ có các phương thức dành riêng cho nền tàng cụ thể đó. Tuy nhiên, bạn ko cần chỉ rõ loại trừ khi bạn muốn truy cập API nền tảng cơ bản.

const app = await NestFactory.create<NestExpressApplication>(AppModule);

Chạy ứng dụng

Khi mà quá trình cài đặt thành công, bạn có thể chạy lệnh phía dưới ở hệ điều hành của bạn để bắt đầu ứng dụng lắng nghe các request HTTP gửi đến

$ npm run start

Câu lệnh bắt đầu ứng dụng với lắng nghe cổng HTTP được định nghĩa trong file src/main.ts. Một khi ứng dụng chạy, mở trình duyệt của bạn, nó sẽ chuyển đến http://localhost:3000/. Bạn sẽ thấy thông điệp Hello world! .

(Nguồn https://docs.nestjs.com/first-steps)

One Comment on “Tổng quan – NestJS

  1. Nếu một interceptor handle() được gọi ở bất kỳ đâu trên đường đi, phương thức create() sẽ không được thực thi. => Nếu một interceptor handle() “”không”” được gọi ở bất kỳ đâu trên đường đi, phương thức create() sẽ không được thực thi.

Leave a Reply

%d bloggers like this: