Đề ôn · SDN302

SDN302 Server-Side development with NodeJS, Express, and MongoDB – Bộ ôn tập thi lại số 1 (50 câu)

50 câu · Thi lại · Spring 2026

50câu trong đề
SDN302môn

Câu hỏi của đề

15/50 câuCòn 35
1What renders in this Handlebars template with { greeting: 'Hi' }? //4 lựa chọncó codeDễ71% trả lời đúng
Đề bài
profile.handlebars <p>{
  {
    greeting
  }
}

</p>

A<p>Hi</p>
B<p>{{greeting}}</p>
CTemplate expression if not compiled
DEmpty
Lời giải

Trong Handlebars template, {{greeting}} được hiểu là biểu thức mẫu (template expression). Khi bạn truyền dữ liệu { greeting: 'Hi' } vào template, biểu thức mẫu sẽ được thay thế bằng giá trị thực tế. Trong trường hợp này, {{greeting}} sẽ được thay thế bằng 'Hi'. Do đó, kết quả cuối cùng sẽ là <p>Hi</p>.

Mở trang câu hỏi này →
Đề bài
app.get('/') sends 'Welcome to the homepage!';
app.get('/about') sends 'About us';

a final app.use sends 404 'Page not found'; app.listen on 3000) (Choose 3 answers)

AIt logs all incoming requests to the console.
BIt returns 'Welcome to the homepage!' for GET requests to the root URL.
CIt returns a 404 error for any undefined routes.
DIt only handles POST requests.
Lời giải
Mô tả về mã nguồn Express.js này là một ứng dụng web đơn giản. Khi truy cập qua trình duyệt web, ứng dụng sẽ thực hiện các hành động sau. Trước hết, ứng dụng sẽ ghi lại tất cả các yêu cầu vào console thông qua app.use(). Sau đó, khi người dùng truy cập vào trang chủ (GET /), ứng dụng sẽ hiển thị thông điệp 'Welcome to the homepage!' thông qua app.get('/'). Nếu người dùng truy cập vào trang 'About us' (GET /about), ứng dụng sẽ hiển thị thông điệp 'About us' thông qua app.get('/about'). Tuy nhiên, nếu người dùng truy cập vào bất kỳ đường dẫn nào khác, ứng dụng sẽ hiển thị thông điệp 'Page not found' thông qua app.use(). Cuối cùng, ứng dụng sẽ lắng nghe trên cổng 3000 thông qua app.listen().
Mở trang câu hỏi này →
3Which Node.js built-in module is used for creating servers?4 lựa chọnTrung bình67% trả lời đúng
Afs
Bhttp
Curl
Dnet
Lời giải
Để tạo một server trong Node.js, chúng ta cần sử dụng một module được tích hợp sẵn. Trong các lựa chọn trên, module nào được sử dụng để tạo server?
Mở trang câu hỏi này →
4What is database encryption?4 lựa chọnDễ100% trả lời đúng
AThe process of converting data into a secure format that can only be read with a decryption key.
BThe process of backing up data.
CThe process of normalizing data.
DThe process of querying data.
Lời giải
Tính năng mã hóa cơ sở dữ liệu là quá trình chuyển đổi dữ liệu thành một định dạng an toàn, chỉ có thể đọc được bằng cách sử dụng khóa giải mã. Điều này giúp bảo vệ dữ liệu khỏi việc truy cập trái phép hoặc bị đánh cắp. Mã hóa cơ sở dữ liệu là một biện pháp quan trọng để bảo vệ dữ liệu nhạy cảm, chẳng hạn như thông tin cá nhân, thông tin tài chính và thông tin kinh doanh. Quá trình mã hóa cơ sở dữ liệu thường được thực hiện bằng cách sử dụng các thuật toán mã hóa mạnh mẽ và khóa giải mã được bảo vệ. Điều này giúp đảm bảo rằng dữ liệu chỉ có thể được truy cập bởi những người có quyền truy cập hợp lệ và được ủy quyền.
Mở trang câu hỏi này →
5Which is the correct order of middleware execution in Express.js?4 lựa chọnTrung bình56% trả lời đúng
ADefined order in code
BAlphabetical order
CBased on request type
DRandom order
Lời giải

Trong Express.js, trình trung gian (middleware) được thực hiện theo một trình tự nhất định. Trình tự này được xác định bởi vị trí của chúng trong mã nguồn. Điều này có nghĩa là trình trung gian được định nghĩa trước sẽ được thực hiện trước trình trung gian được định nghĩa sau. Ví dụ, nếu bạn có một ứng dụng Express.js với hai trình trung gian được định nghĩa như sau:

Lời giải
app.use(express.json());
app.use(logger('dev'));

Thì trình trung gian express.json() sẽ được thực hiện trước trình trung gian logger('dev'). Điều này giúp đảm bảo rằng dữ liệu được xử lý một cách nhất quán và chính xác. Do đó, trình tự thực hiện của trình trung gian trong Express.js là dựa trên vị trí của chúng trong mã nguồn, không phải theo thứ tự từ A-Z, dựa trên loại yêu cầu hoặc ngẫu nhiên.

Mở trang câu hỏi này →
6In Node with Express, how does `app.use(express.json())` affect requests?4 lựa chọnDễ100% trả lời đúng
AParses JSON bodies
BSets CORS headers
CHandles static file
DValidates routes
Lời giải
Trong Node với Express, `app.use(express.json())` có tác dụng giải quyết các yêu cầu JSON. Khi một yêu cầu được gửi đến ứng dụng Express, nó sẽ được kiểm tra xem có chứa dữ liệu JSON hay không. Nếu có, Express sẽ giải quyết dữ liệu đó thành một đối tượng JavaScript có thể sử dụng. Điều này cho phép bạn dễ dàng truy cập và xử lý dữ liệu JSON trong ứng dụng của mình. Ví dụ, nếu bạn có một yêu cầu POST với một cơ thể JSON như sau: { "name": "John", "age": 30 } , Express sẽ giải quyết nó thành một đối tượng như sau: { name: 'John', age: 30 } . Điều này giúp bạn dễ dàng truy cập và xử lý dữ liệu JSON trong ứng dụng của mình.
Mở trang câu hỏi này →
7What is the response4 lựa chọncó codeDễ86% trả lời đúng
Đề 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 →
8What is the difference between PUT and PATCH methods in REST APIs?4 lựa chọnDễ78% trả lời đúng
APUT updates partial resources, PATCH updates full resources
BPUT updates full resources, PATCH updates partial resources
CPUT deletes resources, PATCH creates resources
DPUT and PATCH are identical
Lời giải
PUT và PATCH là hai phương thức thường được sử dụng trong REST APIs để cập nhật dữ liệu. PUT được sử dụng để cập nhật toàn bộ tài nguyên, trong khi PATCH được sử dụng để cập nhật một phần của tài nguyên. Ví dụ, nếu bạn muốn cập nhật thông tin của một người dùng, bạn có thể sử dụng PUT để cập nhật toàn bộ thông tin của người dùng, bao gồm cả thông tin không được thay đổi. Ngược lại, nếu bạn chỉ muốn cập nhật một phần của thông tin người dùng, chẳng hạn như cập nhật địa chỉ email, bạn có thể sử dụng PATCH để chỉ cập nhật phần đó. Điều này giúp giảm thiểu số lượng dữ liệu được gửi và nhận, cũng như giảm thiểu thời gian xử lý.
Mở trang câu hỏi này →
9Which command is used to initialize a package.json file in a Node.js project?4 lựa chọnTrung bình60% trả lời đúng
Anpm start
Bnpm install
Cnpm init
Dnpm run
Lời giải
Để tạo một file package.json trong dự án Node.js, bạn cần sử dụng lệnh npm init. Lệnh này sẽ giúp tạo ra một file package.json mới với các thông tin cơ bản về dự án như tên dự án, phiên bản Node.js, và các tùy chọn khác. Khi bạn chạy lệnh npm init, bạn sẽ được hỏi một loạt các câu hỏi để nhập thông tin về dự án của mình. Sau khi nhập xong, lệnh sẽ tạo ra một file package.json mới với các thông tin đã nhập. File này sẽ được sử dụng để quản lý các tùy chọn và phụ thuộc của dự án.
Mở trang câu hỏi này →
10What is the purpose of Passport JWT in security?4 lựa chọnDễ86% trả lời đúng
ATo handle stateless auth with tokens
BTo manage sessions
CTo upload files securely
DTo enable CORS
Lời giải
Passport JWT (JSON Web Token) là một công nghệ được sử dụng trong bảo mật để xử lý xác thực người dùng mà không cần lưu trữ trạng thái. Nó cho phép tạo ra một token chứa thông tin người dùng sau khi họ đã đăng nhập thành công. Token này sẽ được gửi đến máy chủ trong mỗi yêu cầu sau đó, giúp máy chủ xác thực người dùng mà không cần lưu trữ thông tin trạng thái. Điều này giúp tăng hiệu suất và giảm thiểu khả năng bị tấn công bởi các kỹ thuật như session fixation attack.
Mở trang câu hỏi này →
11Which of the following Mongoose schema configurations enable validation of values?4 lựa chọnTrung bình63% trả lời đúng
Adefault: 18
Brequired: true
Cvalidate: {}
Dimmutable: true
Lời giải
Để xác minh giá trị trong Mongoose schema, bạn cần sử dụng một trong các cấu hình sau. Cấu hình 'required: true' chỉ yêu cầu trường đó phải có giá trị, nhưng không kiểm tra giá trị đó có hợp lệ hay không. Để kiểm tra giá trị, bạn cần sử dụng 'validate: {}', nơi bạn có thể xác định các quy tắc kiểm tra giá trị. Ví dụ, bạn có thể xác định giá trị mặc định, hoặc xác định giá trị hợp lệ cho trường đó. Cấu hình 'immutable: true' chỉ cho phép trường đó không được thay đổi sau khi được tạo, nhưng không liên quan đến việc xác minh giá trị.
Mở trang câu hỏi này →
12What is Mongoose in Node.js?4 lựa chọnDễ100% trả lời đúng
AA database
BA MongoDB object modeling tool
CAn HTTP client
DA web server framework
Lời giải
Mongoose là một công cụ mô hình hóa đối tượng MongoDB trong Node.js. Nó cho phép bạn tạo ra các mô hình dữ liệu phức tạp và tương tác với cơ sở dữ liệu MongoDB một cách dễ dàng. Mongoose cung cấp các tính năng như tạo và xóa dữ liệu, thực hiện các truy vấn phức tạp, và quản lý các mối quan hệ giữa các mô hình dữ liệu. Nó cũng hỗ trợ các tính năng như tạo index, thực hiện các truy vấn phân trang và tìm kiếm dữ liệu theo các điều kiện cụ thể. Mongoose là một công cụ mạnh mẽ và phổ biến trong việc xây dựng các ứng dụng Node.js sử dụng MongoDB.
Mở trang câu hỏi này →
ANoSQL databases guarantee immediate data consistency across all nodes
BNoSQL databases support flexible schemas for rapidly changing data
CNoSQL databases enforce foreign key constraints for data integrity
DNoSQL databases are optimized for complex joins across multiple tables
Lời giải
Một nhà phát triển có thể chọn một cơ sở dữ liệu NoSQL như MongoDB thay vì cơ sở dữ liệu SQL để ứng dụng phân tích thời gian thực vì một số lý do. Cơ sở dữ liệu NoSQL cho phép sử dụng cấu trúc dữ liệu linh hoạt, phù hợp với dữ liệu thay đổi nhanh chóng. Điều này giúp giảm thiểu thời gian và công sức khi thiết kế và triển khai cơ sở dữ liệu. Ngoài ra, cơ sở dữ liệu NoSQL thường có khả năng mở rộng tốt hơn, cho phép xử lý lượng dữ liệu lớn và nhanh chóng. Điều này đặc biệt quan trọng trong ứng dụng phân tích thời gian thực, nơi dữ liệu được cập nhật liên tục và cần được xử lý nhanh chóng để cung cấp thông tin chính xác và kịp thời.
Mở trang câu hỏi này →
14Which statements correctly describe the benefits of Mongoose population?4 lựa chọnDễ86% trả lời đúng
APopulation makes the code cleaner and more intuitive when dealing with related data.
BPopulation makes it harder to read and understand the code.
CPopulation reduces the need for multiple round trips to the database.
DPopulation can only be used with single-level documents.
Lời giải
Mongoose population là một tính năng mạnh mẽ giúp bạn dễ dàng quản lý dữ liệu liên quan trong MongoDB. Khi sử dụng population, bạn có thể dễ dàng truy cập và xử lý dữ liệu liên quan mà không cần phải viết nhiều mã code phức tạp. Điều này giúp code của bạn trở nên sạch sẽ và dễ hiểu hơn khi xử lý dữ liệu liên quan. Ngoài ra, population còn giúp giảm thiểu số lần yêu cầu đến cơ sở dữ liệu, từ đó cải thiện hiệu suất và tốc độ của ứng dụng. Tuy nhiên, population không phải là một tính năng bắt buộc và bạn có thể chọn sử dụng nó tùy thuộc vào nhu cầu của dự án.
Mở trang câu hỏi này →
ABuild a server using Node.js and MongoDB
BUse Firebase as a BaaS platform
CRent physical servers from a data center
DDevelop all logic on the client side
Lời giải
Một startup muốn nhanh chóng phát hành một ứng dụng di động mà không phải xây dựng một backend tùy chỉnh. Trong trường hợp này, giải pháp phù hợp nhất là sử dụng Firebase như một nền tảng BaaS. Firebase cung cấp các dịch vụ như lưu trữ dữ liệu, tính toán, và phân tích dữ liệu mà không cần phải xây dựng backend từ đầu. Điều này cho phép startup tập trung vào phát triển ứng dụng di động mà không phải lo lắng về việc xây dựng và quản lý backend. Ngoài ra, Firebase cũng cung cấp các tính năng như đăng nhập, đăng ký, và bảo mật mà không cần phải viết mã từ đầu.
Mở trang câu hỏi này →