Ngân hàng câu hỏi của chương

Câu hỏi: SDN302 Chương 3 - Express.js và Middleware

24 câu trắc nghiệm kèm lời giải của môn Server-Side development with NodeJS, Express, and MongoDB, xếp theo thứ tự nhập vào ngân hàng.

Danh sách câu hỏi

20/24 câuCòn 4
1______ is a fast, unopinionated and minimalist web framework for Node.js4 lựa chọnDễ100% trả lời đúng
AExpress
BSpring
CHibernate
D.Net
Lời giải
Một framework web nhanh, không có ý kiến và tối giản cho Node.js là một công cụ giúp xây dựng ứng dụng web nhanh chóng và hiệu quả. Nó cho phép các nhà phát triển xây dựng các ứng dụng web với ít mã nguồn hơn, đồng thời cung cấp các tính năng như hỗ trợ các phương thức HTTP, xử lý các yêu cầu và phản hồi, cũng như tích hợp các module khác nhau. Framework này được thiết kế để đáp ứng các yêu cầu của các ứng dụng web hiện đại, bao gồm hỗ trợ các công nghệ mới nhất và cung cấp các tính năng bảo mật mạnh mẽ.
Mở trang câu hỏi này →
2How do you add middleware to an Express application?4 lựa chọnDễ100% trả lời đúng
Aapp.run(middleware)
Bapp.use(middleware)
Capp.middleware(middleware)
Dapp.listen(middleware)
Lời giải
Để thêm middleware vào ứng dụng Express, bạn cần sử dụng phương thức app.use(). Phương thức này cho phép bạn thêm các chức năng trung gian vào ứng dụng, giúp xử lý các yêu cầu và phản hồi trước khi chúng được gửi đến ứng dụng chính. Ví dụ, bạn có thể thêm middleware để kiểm tra quyền truy cập, xác thực người dùng, hoặc xử lý các yêu cầu và phản hồi theo cách tùy chỉnh. Để sử dụng app.use(), bạn cần truyền vào một hàm middleware, hàm này sẽ được gọi trước khi ứng dụng chính xử lý yêu cầu. Ví dụ: app.use(middlewareFunction). Ngoài ra, bạn cũng có thể thêm middleware để xử lý các yêu cầu và phản hồi cho các đường dẫn cụ thể bằng cách truyền vào một mảng gồm đường dẫn và hàm middleware. Ví dụ: app.use('/path', middlewareFunction).
Mở trang câu hỏi này →
3Consider the following code snippet4 lựa chọncó codeDễ100% trả lời đúng
Đề bài
using Express.js. Identify which routes handle GET and POST requests. app.get('/users', ...);
app.post('/users', ...);

app.listen(3000, ...) (Choose 2 answers)

AThe /users endpoint handles GET requests.
BThe /users endpoint handles POST requests.
CThe /users endpoint handles PUT requests.
DThe /users endpoint handles DELETE requests.
Lời giải

Để xác định các đường dẫn xử lý GET và POST yêu cầu, chúng ta cần xem xét các dòng mã sau: app.get('/users', ...); app.post('/users', ...). Trong đó, app.get() được sử dụng để xử lý GET yêu cầu, trong khi app.post() được sử dụng để xử lý POST yêu cầu. Điều này có nghĩa là đường dẫn /users sẽ xử lý cả GET và POST yêu cầu. Vì vậy, hai đáp án đúng là: "The /users endpoint handles GET requests." và "The /users endpoint handles POST requests."

Mở trang câu hỏi này →
4What is Express.js?4 lựa chọnDễ100% trả lời đúng
AA database management system.
BA front-end framework for designing UI.
CA back-end web application framework for Node.js.
DA text editor for coding.
Lời giải
Express.js là một khung làm việc phía sau (back-end) cho Node.js, cho phép bạn xây dựng các ứng dụng web nhanh chóng và hiệu quả. Nó cung cấp một bộ công cụ mạnh mẽ để tạo ra các API, xử lý yêu cầu HTTP và trả về phản hồi. Express.js cho phép bạn tạo ra các ứng dụng web linh hoạt, dễ dàng mở rộng và bảo trì. Nó cũng hỗ trợ các tính năng như middleware, template engine và các công cụ khác để giúp bạn xây dựng các ứng dụng web chuyên nghiệp.
Mở trang câu hỏi này →
5What does the res.send() method do in Express.js?4 lựa chọnDễ100% trả lời đúng
AReads data from a file
BSends the HTTP response
CHandles HTTP requests
DEnds the HTTP session
Lời giải
Trong Express.js, phương thức res.send() được sử dụng để gửi phản hồi HTTP. Nó cho phép bạn trả về dữ liệu dưới dạng JSON, chuỗi hoặc đối tượng. Phương thức này cũng có thể được sử dụng để gửi phản hồi HTTP với mã trạng thái cụ thể. Ví dụ, bạn có thể sử dụng res.send() để gửi phản hồi HTTP với mã trạng thái 200 (OK) hoặc 404 (Không tìm thấy). Ngoài ra, phương thức này cũng có thể được sử dụng để gửi phản hồi HTTP với nội dung cụ thể, chẳng hạn như một chuỗi hoặc một đối tượng JSON.
Mở trang câu hỏi này →
6Analyze the following codes:4 lựa chọncó codeTrung bình50% trả lời đúng
Đề bài
app.get('/', (req, res) => {
  res.send('Hello, this is a GET request');
}

); app.listen(3000, ...). What is right URL to display the text "Hello, this is a GET request"?

Ahttp://localhost:3000/
Bhttp://localhost:3000/GET
Chttp://localhost:3000/POST
Dhttp://localhost:3000/PUT
Lời giải
Để tìm hiểu về URL đúng để hiển thị văn bản 'Xin chào, đây là một yêu cầu GET', chúng ta cần hiểu về cách thức hoạt động của ứng dụng Express.js. Trong đoạn mã được cung cấp, chúng ta thấy một hàm được định nghĩa để xử lý yêu cầu GET đến đường dẫn gốc '/' của ứng dụng. Hàm này sử dụng phương thức res.send() để gửi phản hồi 'Hello, this is a GET request' về cho người dùng. Đồng thời, ứng dụng cũng được lắng nghe trên cổng 3000 bằng cách sử dụng phương thức app.listen(). Vì vậy, để truy cập vào ứng dụng và xem văn bản được gửi về, người dùng cần nhập URL 'http://localhost:3000/' vào trình duyệt web. Điều này cho phép ứng dụng gửi phản hồi về cho người dùng và hiển thị văn bản mong muốn.
Mở trang câu hỏi này →
7Which middleware handles JSON data in Express.js?4 lựa chọnTrung bình60% trả lời đúng
Abody-parser
Bjson-middleware
Cexpress-json
Dexpress-parser
Lời giải
Trong Express.js, middleware xử lý dữ liệu JSON được gọi là body-parser. Nó giúp chuyển đổi dữ liệu JSON được gửi qua request thành một đối tượng JavaScript có thể sử dụng được. Để sử dụng body-parser, bạn cần cài đặt nó qua npm bằng lệnh npm install body-parser. Sau đó, bạn cần thêm middleware này vào ứng dụng Express.js của mình bằng cách sử dụng lệnh app.use(bodyParser.json()). Điều này sẽ cho phép Express.js xử lý dữ liệu JSON được gửi qua request.
Mở trang câu hỏi này →
8What is Express Generator?4 lựa chọnDễ86% trả lời đúng
AA tool for managing databases.
BA command-line tool that helps you quickly generate the basic structure and files for an Express.js application.
CA library for creating front-end UI components.
DA debugger for Node.js applications.
Lời giải
Express Generator là một công cụ dòng lệnh giúp bạn nhanh chóng tạo ra cấu trúc cơ bản và các tệp tin cho một ứng dụng Express.js. Nó cho phép bạn tạo ra các tệp tin như app.js, package.json, và các thư mục khác mà bạn cần để bắt đầu xây dựng ứng dụng Express.js. Với Express Generator, bạn có thể tạo ra ứng dụng Express.js từ đầu mà không cần phải tạo ra từng tệp tin một cách thủ công. Điều này giúp tiết kiệm thời gian và công sức của bạn khi xây dựng ứng dụng Express.js.
Mở trang câu hỏi này →
9How to install Express?4 lựa chọnDễ80% trả lời đúng
Anode install express --save
Bnpm uninstall express -save
Cnpm install express -save
Dnpm express install
Lời giải
Để cài đặt Express, bạn cần sử dụng lệnh npm install express -save. Lệnh này sẽ cài đặt Express và lưu trữ nó vào file package.json trong dự án của bạn. Điều này giúp bạn dễ dàng quản lý các gói phụ thuộc và đảm bảo rằng tất cả các thành viên trong nhóm đều sử dụng cùng một phiên bản của Express. Ngoài ra, lệnh npm install express -save còn giúp bạn dễ dàng cập nhật hoặc xóa Express trong tương lai. Nếu bạn sử dụng lệnh npm install express mà không có tùy chọn -save, Express sẽ được cài đặt nhưng không được lưu trữ vào file package.json. Điều này có thể gây ra vấn đề khi bạn cần cập nhật hoặc xóa Express sau này.
Mở trang câu hỏi này →
10Which statements correctly describe the purpose of Express Generator?4 lựa chọnDễ100% trả lời đúng
AIt sets up a project skeleton with the necessary files and folders.
BIt compiles JavaScript code into machine code.
CIt allows you to focus on building your application's features instead of setting up the initial boilerplate code.
DIt is used to manage user authentication and sessions.
Lời giải
Express Generator là một công cụ mạnh mẽ giúp bạn tạo ra một cấu trúc dự án cơ bản với các tệp và thư mục cần thiết. Nó cho phép bạn tập trung vào xây dựng các tính năng của ứng dụng thay vì phải dành thời gian để thiết lập mã cơ bản. Điều này giúp bạn có thể bắt đầu phát triển ứng dụng của mình nhanh chóng và hiệu quả hơn. Ngoài ra, Express Generator cũng giúp bạn có thể dễ dàng quản lý và cấu hình các tệp và thư mục của dự án.
Mở trang câu hỏi này →
11What will the following API endpoint4 lựa chọncó codeDễ100% trả lời đúng
Đề bài
return when called with an invalid user ID? app.get('/user/:id', (req, res) => {
  const userId = req.params.id; if (!isValidId(userId)) {
    res.status(400).send("Invalid ID");
  }
  else {
    res.status(200).send("User details");
  }
}

);

A400 and "Invalid ID"
B500 and "Internal Server Error"
C404 and "Not Found"
D200 and "User details"
Lời giải
Khi gọi API endpoint '/user/:id' với một ID không hợp lệ, ứng dụng sẽ trả về trạng thái lỗi 400 và thông điệp 'Invalid ID'. Điều này là vì ứng dụng đã được thiết kế để kiểm tra xem ID được cung cấp có hợp lệ hay không trước khi trả về thông tin người dùng. Nếu ID không hợp lệ, ứng dụng sẽ trả về trạng thái lỗi 400 và thông điệp lỗi cụ thể. Điều này giúp ứng dụng cung cấp thông tin phản hồi rõ ràng và hữu ích cho người dùng.
Mở trang câu hỏi này →
12Consider the following code snippet using Express.js. Identify the parts responsible4 lựa chọncó codeKhó33% trả lời đúng
Đề bài
for defining a route and starting the server. const express = require('express');

const app = express();

Đề bài
app.get('/', (req, res) => {
  res.send('Hello, world!');
}

);

Đề bài
app.listen(3000, () => {
  console.log('Server is running on port 3000');
}

); (Choose 2 answers)

AThe require('express') statement defines the route.
BThe app.get('/', (req, res) => { ... }) statement defines the route.
CThe app.listen(3000, () => { ... }) statement starts the server.
DThe res.send('Hello, world!') statement starts the server.
Lời giải

Để trả lời câu hỏi này, chúng ta cần hiểu rõ về cách sử dụng Express.js. Đầu tiên, chúng ta cần nhập thư viện Express.js bằng cách sử dụng câu lệnh require('express'). Sau đó, chúng ta tạo một đối tượng app bằng cách sử dụng express(). Đối tượng này sẽ được sử dụng để định nghĩa các route và bắt đầu server. Trong ví dụ này, chúng ta sử dụng app.get('/') để định nghĩa một route cho URL '/' và gửi phản hồi 'Hello, world!' lại cho người dùng. Cuối cùng, chúng ta sử dụng

Lời giải
app.listen(3000, () => {
  ...
}

) để bắt đầu server trên cổng 3000 và in ra thông báo 'Server is running on port 3000' khi server đã được bắt đầu. Vì vậy, câu trả lời chính xác là 'The

Lời giải
app.get('/', (req, res) => {
  ...
}

) statement defines the route' và 'The

Lời giải
app.listen(3000, () => {
  ...
}

) statement starts the server'.

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 →
14Analyze the following codes: const express = require('express'); const app = express();4 lựa chọncó codeDễ100% trả lời đúng
Đề bài
app.get('/', (req, res) => {
  res.send('Hello, this is a GET request');
}

);

Đề bài
app.listen(3000, () => {
  console.log('Server is running on port 3000');
}

); What is right URL to display the text "Hello, this is a GET request"?

Ahttp://localhost:3000/
Bhttp://localhost:3000/GET
Chttp://localhost:3000/POST
Dhttp://localhost:3000/PUT
Lời giải
Để tìm hiểu về URL đúng để hiển thị văn bản 'Xin chào, đây là một yêu cầu GET', chúng ta cần hiểu về cách thức hoạt động của ứng dụng Express.js. Trong đoạn mã được cung cấp, chúng ta thấy một ứng dụng Express.js được tạo và lắng nghe trên cổng 3000. Khi một yêu cầu GET được gửi đến đường dẫn '/', ứng dụng sẽ trả về văn bản 'Hello, this is a GET request'. Điều này có nghĩa là URL đúng để hiển thị văn bản này là đường dẫn '/' trên cổng 3000. Vì vậy, URL đúng là http://localhost:3000/.
Mở trang câu hỏi này →
15What object is used to send data back to the client in Express?4 lựa chọnDễ100% trả lời đúng
Areq
Bres
Capp
Dnext
Lời giải
Trong Express, đối tượng được sử dụng để gửi dữ liệu trở lại cho client là 'res'. Đối tượng này là một phần của đối tượng request, được sử dụng để trả về dữ liệu cho client. Đối tượng res cung cấp các phương thức để trả về dữ liệu, chẳng hạn như send(), json(), redirect() v.v. Nó cũng cung cấp các phương thức để điều chỉnh trạng thái HTTP, chẳng hạn như statusCode(). Đối tượng res là một phần quan trọng của Express và được sử dụng rộng rãi trong việc phát triển các ứng dụng web.
Mở trang câu hỏi này →
16Consider the Express.js route below. What will be the response4 lựa chọncó codeDễ100% trả lời đúng
Đề bài
if the user visits /welcome? app.get('/welcome', (req, res) => {
  res.send("Hello, Express!");
}

);

AA JSON response
BThe text "Hello, Express!"
CAn error message
DA 404 page
Lời giải
Khi người dùng truy cập đường dẫn /welcome, ứng dụng Express.js sẽ thực hiện chức năng xử lý yêu cầu (app.get) và gửi phản hồi (res.send) với nội dung 'Hello, Express!'. Điều này có nghĩa là người dùng sẽ thấy nội dung 'Hello, Express!' khi truy cập đường dẫn /welcome. Vì vậy, câu trả lời đúng là 'The text "Hello, Express!"'.
Mở trang câu hỏi này →
17In 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:

Lời giải
{
  "name": "John",
  "age": 30
}

, Express sẽ giải quyết nó thành một đối tượng như sau:

Lời giải
{
  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 →
Đề bài
app.get('/', (req, res) => {
  throw new Error('Test error');
}

);

Đề bài
app.listen(3000);
AContinues serving other routes normally
BPasses to next error middleware if defined
CReturns default 500 with stack trace
DHalts the server until restarted
Lời giải
Khi một lỗi được ném trong một xử lý tuyến đường Express, ứng dụng Express sẽ tự động trả về trạng thái lỗi 500 với thông tin lỗi chi tiết. Điều này xảy ra vì Express sử dụng cơ chế middleware để xử lý các lỗi. Nếu một lỗi được ném trong một xử lý tuyến đường, Express sẽ tự động tìm kiếm middleware lỗi tiếp theo để xử lý. Nếu không có middleware lỗi nào được định nghĩa, Express sẽ tự động trả về trạng thái lỗi 500. Điều này giúp đảm bảo rằng ứng dụng luôn có thể trả về thông tin lỗi cho người dùng, ngay cả khi có lỗi xảy ra trong ứng dụng.
Mở trang câu hỏi này →
ARouter files like index.js and users.js
BTemplate files for views and layouts
CModel definitions for database interactions
DAsset folders for static content serving
Lời giải
Khi sử dụng Express Generator để tạo một ứng dụng Express mới, nó sẽ tự động tạo ra một số thư mục và tệp tin quan trọng. Trong thư mục `/routes`, Express Generator sẽ tạo ra các tệp tin router như `index.js` và `users.js`. Các tệp tin này chứa các hàm xử lý yêu cầu HTTP và trả về phản hồi cho các route tương ứng. Ví dụ, `index.js` có thể chứa hàm xử lý yêu cầu GET cho route `/` và trả về một trang chủ, trong khi `users.js` có thể chứa hàm xử lý yêu cầu GET cho route `/users` và trả về danh sách người dùng. Các tệp tin router này giúp phân tách logic ứng dụng và làm cho mã nguồn trở nên dễ đọc và dễ bảo trì hơn.
Mở trang câu hỏi này →
Đề bài
if (!req.headers['x-auth']) {
  return next(new Error('Missing auth header'));
}

next(); };

Đề bài
app.use(checkAuth);
app.get('/api/data', (req, res) => {
  res.json({
    data: 'Secret'
  }
  );
}

);

Đề bài
app.use((err, req, res, next) => {
  res.status(401).json({
    error: err.message
  }
  );
}

); app.listen(3000); Assume the request has no `x-auth` header.

A{ data: 'Secret' }
B{ error: 'Missing auth header' }
C400 with { error: 'Bad Request' }
DThrows an uncaught error
Lời giải
Khi thực hiện một yêu cầu GET đến địa chỉ http://localhost:3000/api/data trong ứng dụng Express này, ứng dụng sẽ kiểm tra xem yêu cầu có chứa tiêu đề 'x-auth' hay không. Vì yêu cầu không có tiêu đề 'x-auth', nên ứng dụng sẽ gọi hàm checkAuth và hàm này sẽ trả về lỗi với thông điệp 'Missing auth header'. Sau đó, ứng dụng sẽ sử dụng middleware cuối cùng để trả về trạng thái 401 và nội dung lỗi với thông điệp 'Missing auth header'.
Mở trang câu hỏi này →