Chủ đề của Server-Side development with NodeJS, Express, and MongoDB

SDN302 Chương 11 - Framework NestJS và Hono

Chương 11 môn SDN302 mở rộng sang hai framework hiện đại của hệ sinh thái Node.js: NestJS với kiến trúc mô-đun và nền TypeScript, hệ thống decorator gồm Controller, Get và Injectable, khái niệm module, cơ chế tiêm phụ thuộc (Dependency Injection) cùng lệnh CLI sinh service; và Hono, framework siêu nhẹ hướng môi trường Edge. So sánh điểm khác biệt cốt lõi giữa NestJS và Express.js. Trọn bộ câu hỏi trắc nghiệm có giải thích.

Xem danh sách câu hỏi7 câu hỏi100% có giải thích

Bắt đầu bằng Chế độ học nếu bạn muốn đáp án và giải thích hiện ngay sau mỗi câu — không bấm giờ, dừng lúc nào cũng được. Chọn Thi thử khi muốn biết mình đang ở đâu: có bấm giờ, chấm điểm ở cuối, và giải thích chỉ mở sau khi nộp.

Học ngân hàng câu hỏi của chủ đề

Luyện tập theo chủ đề này

7Câu hỏi hiện có

Câu hỏi của chủ đề

7/7 câuHết danh sách
1Which decorator is used in Nest.js to mark a class as a controller?4 lựa chọnTrung bình40% trả lời đúng
A@Service
B@Injectable
C@Controller
D@Component
Lời giải
Trong Nest.js, để đánh dấu một lớp là một controller, bạn cần sử dụng decorator @Controller. Điều này cho phép Nest.js nhận biết lớp đó là một controller và có thể xử lý các yêu cầu HTTP đến từ ứng dụng. @Controller được sử dụng để tạo ra các lớp controller, nơi bạn có thể định nghĩa các phương thức để xử lý các yêu cầu HTTP. Ví dụ, bạn có thể tạo một lớp controller để xử lý các yêu cầu GET, POST, PUT, DELETE,... đến từ ứng dụng. @Controller là một phần quan trọng của Nest.js và giúp bạn tạo ra các ứng dụng web mạnh mẽ và linh hoạt.
Mở trang câu hỏi này →
2What is a module in NestJS?4 lựa chọnDễ
AA function that handles HTTP requests
BA file that defines a specific feature of the app
CA global object for managing app state
DA controller for defining routes
Lời giải
Trong NestJS, một module là một tập hợp các thành phần quan trọng của ứng dụng, bao gồm các controller, services, providers và các module con. Mỗi module được định nghĩa trong một file riêng biệt và có thể được sử dụng để tổ chức và quản lý các tính năng của ứng dụng một cách hiệu quả. Ví dụ, nếu bạn muốn tạo một ứng dụng có tính năng quản lý người dùng, bạn có thể tạo một module riêng biệt để quản lý các chức năng liên quan đến người dùng, bao gồm việc đăng nhập, đăng ký và quản lý thông tin người dùng. Điều này giúp bạn dễ dàng bảo trì và mở rộng ứng dụng mà không ảnh hưởng đến các tính năng khác.
Mở trang câu hỏi này →
ATo make HTTP requests faster
BTo reduce memory usage
CTo manage and share resources efficiently between modules
DTo handle errors in controllers
Lời giải
Dependency Injection trong NestJS là một kỹ thuật giúp quản lý và chia sẻ tài nguyên một cách hiệu quả giữa các mô-đun. Nó cho phép các mô-đun phụ thuộc vào các dịch vụ hoặc đối tượng khác mà không cần phải tạo ra chúng một cách thủ công. Điều này giúp giảm bớt sự phức tạp trong mã nguồn và tăng cường khả năng tái sử dụng. Khi sử dụng Dependency Injection, các mô-đun có thể được thiết kế độc lập và dễ dàng thay thế mà không ảnh hưởng đến các mô-đun khác. Điều này giúp tăng cường tính linh hoạt và dễ dàng bảo trì hệ thống. Ngoài ra, Dependency Injection cũng giúp giảm thiểu sự phụ thuộc giữa các mô-đun, giúp hệ thống trở nên dễ dàng bảo trì và mở rộng hơn.
Mở trang câu hỏi này →
A@Injectable
B@Inject
C@Service
D@Provider
Lời giải
Trong NestJS, để chèn một phụ thuộc vào một dịch vụ, bạn cần sử dụng decorator @Inject. Decorator này cho phép bạn truyền vào một đối tượng phụ thuộc vào một hàm hoặc một lớp. Điều này giúp bạn có thể dễ dàng quản lý và thay thế phụ thuộc trong ứng dụng của mình.
Mở trang câu hỏi này →
Anest new service
Bnest generate service
Cnest create service
Dnest add service
Lời giải
Để tạo một dịch vụ mới trong NestJS, bạn cần sử dụng lệnh CLI (Command Line Interface) phù hợp. Trong các lựa chọn trên, lệnh "nest generate service" là câu trả lời chính xác. Lệnh này cho phép bạn tạo một dịch vụ mới với cấu trúc và các tệp tin cần thiết. Bạn có thể sử dụng lệnh này trong dự án NestJS để tạo các dịch vụ khác nhau, chẳng hạn như dịch vụ API, dịch vụ dữ liệu, v.v. Để sử dụng lệnh này, bạn cần mở terminal hoặc command prompt, sau đó nhập lệnh "nest generate service" và theo dõi các hướng dẫn trên màn hình để hoàn tất quá trình tạo dịch vụ.
Mở trang câu hỏi này →
6What is the primary difference between NestJS and ExpressJS?4 lựa chọnTrung bình67% trả lời đúng
ANestJS uses no routing
BExpress is synchronous only
CNestJS is modular and TypeScript-based
DExpressJS supports decorators
Lời giải
NestJS và ExpressJS là hai framework phổ biến trong việc xây dựng ứng dụng web với Node.js. Sự khác biệt chính giữa hai framework này là kiến trúc và tính năng. NestJS được thiết kế theo mô hình kiến trúc modular và hỗ trợ ngôn ngữ lập trình TypeScript, giúp tăng cường tính bảo mật và khả năng mở rộng. Trong khi đó, ExpressJS là một framework nhẹ và linh hoạt, cho phép người dùng tự do tùy chỉnh và mở rộng. Tuy nhiên, NestJS cung cấp nhiều tính năng và công cụ sẵn có, giúp giảm thiểu thời gian phát triển và tăng cường hiệu suất. Vì vậy, câu trả lời đúng là NestJS là modular và TypeScript-based.
Mở trang câu hỏi này →
7What is the response4 lựa chọncó codeDễ
Đề bài
for GET /cats in this NestJS controller? import {
  Controller, Get
}

from '@nestjs/common'; @Controller('cats') export

Đề bài
class CatsController {
  @Get() findAll() {
    return ['cat1', 'cat2'];
  }
}
A['cat1', 'cat2']
BArray of resources if route matched
CStandard response from controller method
DEmpty
Lời giải
Trong trường hợp này, phương thức GET /cats trong controller CatsController sẽ trả về một mảng các giá trị ['cat1', 'cat2']. Điều này là vì phương thức findAll() được đánh dấu bằng @Get() và không có bất kỳ thông tin nào về việc trả về một đối tượng cụ thể. Vì vậy, NestJS sẽ tự động trả về giá trị được trả về bởi phương thức findAll(). Trong trường hợp này, giá trị được trả về là một mảng các giá trị, vì vậy NestJS sẽ trả về một mảng các giá trị ['cat1', 'cat2'].
Mở trang câu hỏi này →

Đề có câu hỏi của chủ đề này

2 đề chứa ít nhất một câu thuộc chủ đề — mở đề để làm cả bộ, không chỉ từng câu.