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

Câu hỏi: SDN301m - Tổng hợp câu hỏi ôn tập

109 câu trắc nghiệm kèm lời giải của môn Server-Side development with NodeJS, Express, MongoDB - SDN301m, xếp theo thứ tự nhập vào ngân hàng. Trang 3/6 — câu 41–60.

Danh sách câu hỏi

60/109 câuCòn 49
AAsynchronous
BSynchronous
CBoth of the above
DAll the answers are wrong
Lời giải
Node.js API hoạt động dựa trên nguyên tắc Asynchronous, nghĩa là nó không chờ đợi kết quả của một hành động trước khi thực hiện hành động tiếp theo. Điều này cho phép Node.js xử lý nhiều yêu cầu đồng thời, tăng hiệu suất và khả năng mở rộng. Asynchronous là một trong những tính năng quan trọng nhất của Node.js, giúp nó trở thành một nền tảng phát triển ứng dụng web mạnh mẽ và linh hoạt. Nó cho phép các nhà phát triển tạo ra các ứng dụng có thể xử lý nhiều yêu cầu đồng thời, giảm thiểu thời gian chờ đợi và tăng cường trải nghiệm người dùng. Ngoài ra, Asynchronous cũng giúp giảm thiểu tài nguyên hệ thống, vì nó không cần phải giữ lại các tài nguyên cho mỗi yêu cầu riêng lẻ.
Mở trang câu hỏi này →
ATrue
BFalse
CCan be true or false
DCan not say
Lời giải
Khi chúng ta muốn loại bỏ tất cả các callback, chúng ta có thể sử dụng playersRef_off. Điều này có nghĩa là chúng ta có thể loại bỏ tất cả các callback đã được gắn vào tham chiếu playersRef. Điều này thường được sử dụng khi chúng ta muốn xóa tất cả các callback đã được gắn vào tham chiếu này. Ví dụ, nếu chúng ta đã gắn một callback vào tham chiếu playersRef để cập nhật trạng thái của các player, thì chúng ta có thể sử dụng playersRef_off để loại bỏ callback này và ngăn chặn nó được thực thi khi chúng ta cập nhật trạng thái của các player. Điều này giúp chúng ta có thể kiểm soát và quản lý các callback một cách hiệu quả hơn.
Mở trang câu hỏi này →
A_id
Bid
Cid_
Dnone of the mentioned
Lời giải
Trong MongoDB, khi lưu trữ dữ liệu vào một collection, mỗi bản ghi (document) đều cần có một khóa duy nhất để xác định. Khóa này được gọi là khóa phân biệt (unique key). Trong các lựa chọn đã cho, khóa được sử dụng để chỉ định tính duy nhất trong collection là '_id'. Khóa '_id' được tạo tự động khi tạo một bản ghi mới và có thể được sử dụng để tìm kiếm, cập nhật hoặc xóa dữ liệu. Ngoài ra, khóa '_id' cũng được sử dụng để xác định tính duy nhất của mỗi bản ghi trong collection.
Mở trang câu hỏi này →
Awhile (var i = 1; i <= 25; i++) db.testData.insert( {x:i})
Bfor (var i = 1; i <= 25; i++) db.testData.insert( { x:i})
Cfor (var i= 1; 1 <= 25; i++) db.testData.inserts( {x:i})
DNone of the mentioned
Lời giải
Câu hỏi này yêu cầu bạn chọn phương pháp nào sẽ tạo ra tập dữ liệu testData một cách ngầm định. Các lựa chọn bao gồm bốn phương pháp khác nhau. Phương pháp 1 sử dụng vòng lặp while, phương pháp 2 sử dụng vòng lặp for, phương pháp 3 cũng sử dụng vòng lặp for nhưng với điều kiện sai và phương pháp 4 không có phương pháp nào phù hợp. Để tạo ra tập dữ liệu testData, chúng ta cần sử dụng phương pháp 2, vì nó sử dụng vòng lặp for và điều kiện đúng để tạo ra 25 bản ghi trong tập dữ liệu.
Mở trang câu hỏi này →
AThe forked process shares the event loop with the parent process
BA new VM instance is created and the two VM instances will be shared between the forked process and the parent process.
CThe forked process will have its own VM instance.
DThe forked process shares the same VM thread with the parent process
Lời giải
Khi chạy mã lệnh require('child_process').fork('script.js'), chúng ta đang tạo một tiến trình con (child process) từ một tiến trình cha (parent process). Trong Node.js, khi tạo một tiến trình con bằng cách sử dụng hàm fork(), Node.js sẽ tạo một bản sao hoàn toàn của tiến trình cha, bao gồm cả bộ nhớ và các biến. Điều này có nghĩa là tiến trình con sẽ có một bộ nhớ và các biến riêng biệt, độc lập với tiến trình cha. Ngoài ra, tiến trình con cũng sẽ có một luồng thực thi (execution context) riêng biệt, độc lập với tiến trình cha. Điều này cho phép tiến trình con thực thi mã lệnh độc lập với tiến trình cha mà không ảnh hưởng đến tiến trình cha.
Mở trang câu hỏi này →
Apop()
Bkey0
CuniqueQ
DpushQ
Lời giải
Phương pháp này sẽ tạo một id duy nhất khi dữ liệu được đẩy vào. Khi dữ liệu được thêm vào danh sách, phương pháp sẽ tự động tạo một id duy nhất cho mỗi phần tử. Điều này giúp dễ dàng quản lý và theo dõi các phần tử trong danh sách. Ví dụ, khi sử dụng phương pháp này, bạn có thể dễ dàng xác định vị trí của một phần tử cụ thể trong danh sách dựa trên id của nó. Phương pháp này thường được sử dụng trong các ứng dụng cần quản lý và theo dõi dữ liệu một cách hiệu quả.
Mở trang câu hỏi này →
AEvery Node process runs in a single thread, and all the I/O work is run in that same thread
BEvery Node process gets four threads that it can share between its JavaScript VM and the event loop
CThe event loop Is single-threaded, but a JavaScript VM can use multiple threads
DJavaScript execution in Node js is single-threaded, but I/O operations are executed using multiple threads
Lời giải
Node.js là một môi trường chạy JavaScript được thiết kế cho các ứng dụng web và mạng. Nó sử dụng một mô hình đa luồng (multi-threading) để xử lý các yêu cầu I/O (Input/Output) đồng thời. Điều này có nghĩa là mặc dù Node.js chạy trong một luồng duy nhất (single-threaded), nhưng nó có thể xử lý nhiều yêu cầu I/O khác nhau một cách đồng thời. Điều này giúp tăng hiệu suất và giảm thiểu thời gian chờ đợi. Mô hình này được thực hiện thông qua sự giúp đỡ của một vòng lặp (event loop) và một thư viện (libuv) để quản lý các yêu cầu I/O. Vì vậy, câu trả lời đúng là "JavaScript execution in Node js is single-threaded, but I/O operations are executed using multiple threads".
Mở trang câu hỏi này →
ANodeEvent
BEvents
CEvent
DEventEmitter
Lời giải
Để tạo và sử dụng các sự kiện tùy chỉnh trong Node.js, bạn cần sử dụng lớp Event. Tuy nhiên, lớp Event không được sử dụng rộng rãi trong thực tế. Thay vào đó, lớp EventEmitter được sử dụng phổ biến hơn. Lớp EventEmitter cung cấp các phương thức để tạo và phát các sự kiện, cũng như để đăng ký và hủy đăng ký các sự kiện. Nó cho phép bạn tạo các sự kiện tùy chỉnh và quản lý chúng một cách linh hoạt.
Mở trang câu hỏi này →
Acookie-parser
Bcookie
Creq.cookies
DAll the answers are wrong
Lời giải
Để xác định cookie được gắn vào đối tượng yêu cầu từ client, chúng ta cần sử dụng một module hoặc phương thức cụ thể. Trong trường hợp này, có một số lựa chọn được đề xuất: "cookie-parser", "cookie", "req.cookies" và "Tất cả các đáp án đều sai". Để giải quyết vấn đề này, chúng ta cần hiểu rõ về cách thức hoạt động của từng lựa chọn. "cookie-parser" là một module được sử dụng để giải mã và phân tích cookie trong yêu cầu HTTP. Nó cho phép chúng ta truy cập vào giá trị cookie thông qua phương thức req.cookies. "cookie" có thể là một module hoặc một phương thức khác, nhưng nó không phải là phương thức chính thức để truy cập cookie trong Express.js. "req.cookies" là một phương thức được cung cấp bởi Express.js để truy cập vào cookie trong yêu cầu HTTP. Vì vậy, phương thức chính thức và đúng đắn nhất để giải quyết vấn đề này là "req.cookies" hoặc "cookie-parser".
Mở trang câu hỏi này →
AhasMethod()
BhasDoc()
ChasNext()
DAll of the mentioned
Lời giải
Để xác định xem con trỏ (cursor) có chứa tài liệu (document) hay không, chúng ta có thể sử dụng một số phương thức khác nhau. Phương thức 'hasDoc()' là một trong những phương thức phổ biến được sử dụng để kiểm tra xem con trỏ có chứa tài liệu hay không. Phương thức này sẽ trả về giá trị 'true' nếu con trỏ có chứa tài liệu và ngược lại. Ngoài ra, chúng ta cũng có thể sử dụng phương thức 'hasNext()' để kiểm tra xem con trỏ có chứa tài liệu tiếp theo hay không. Tuy nhiên, phương thức 'hasMethod()' không liên quan trực tiếp đến việc kiểm tra con trỏ có chứa tài liệu hay không. Vì vậy, phương thức 'hasDoc()' là phương thức chính xác nhất trong trường hợp này.
Mở trang câu hỏi này →
Aing any HTML methods
BKeeping old versions of APIs available
Cing custom API error codes
DProviding state information to apps
Lời giải
Khi phát triển các API RESTful, các nhà phát triển cần chú ý đến một số thói quen có thể gây ra vấn đề. Thói quen đầu tiên là việc 'ing any HTML methods' (sử dụng các phương thức HTML không phù hợp). Điều này có thể dẫn đến các vấn đề về bảo mật và không tuân thủ các nguyên tắc của API RESTful. Thói quen thứ hai là 'Keeping old versions of APIs available' (giữ các phiên bản cũ của API có sẵn). Điều này có thể gây ra các vấn đề về bảo trì và bảo mật, vì các phiên bản cũ có thể chứa các lỗ hổng bảo mật chưa được sửa chữa. Thói quen thứ ba là 'ing custom API error codes' (sử dụng các mã lỗi API tùy chỉnh). Điều này có thể gây ra các vấn đề về khả năng tương thích và bảo mật. Cuối cùng, thói quen 'Providing state information to apps' (cung cấp thông tin trạng thái cho các ứng dụng) có thể gây ra các vấn đề về bảo mật và không tuân thủ các nguyên tắc của API RESTful. Vì vậy, nhà phát triển cần tránh các thói quen này để đảm bảo sự an toàn và hiệu suất của API RESTful.
Mở trang câu hỏi này →
ACreate a functional view of the related application
BPut API usage monitoring in place
CChoose either an API proxy or an API gateway
DAll the answers are wrong
Lời giải
Bước đầu tiên hợp lý nhất trong một dự án phát triển API là tạo một bản xem xét chức năng liên quan đến ứng dụng. Điều này có nghĩa là bạn cần tạo một bản thiết kế tổng quan về cách ứng dụng sẽ hoạt động, bao gồm các chức năng, giao diện người dùng và quy trình xử lý dữ liệu. Việc này sẽ giúp bạn hiểu rõ về yêu cầu của dự án và có thể tạo ra một kế hoạch phát triển API hiệu quả. Sau đó, bạn có thể bắt đầu xây dựng API và đảm bảo rằng nó đáp ứng được các yêu cầu đã được xác định. Việc tạo bản xem xét chức năng cũng giúp bạn tránh được các sai lầm và cải thiện hiệu suất của dự án.
Mở trang câu hỏi này →
Ato provide utilities to play with file and directory paths
Bto provide utilities to add and remove files
CItis a retiring module
Dto provide utilities to test files
Lời giải
Mô-đun path trong Node.js cung cấp một tập hợp các tiện ích để làm việc với đường dẫn file và thư mục. Các tiện ích này bao gồm việc tạo, kiểm tra, và thao tác với đường dẫn file và thư mục. Ví dụ, bạn có thể sử dụng path.join() để kết hợp các phần của đường dẫn file thành một đường dẫn hoàn chỉnh, hoặc sử dụng path.resolve() để giải quyết đường dẫn file tuyệt đối. Mô-đun path cũng cung cấp các tiện ích để kiểm tra tính hợp lệ của đường dẫn file và thư mục, cũng như để thao tác với các thành phần của đường dẫn file và thư mục.
Mở trang câu hỏi này →
54What does RAML stand for?4 lựa chọn
AReusable API Markup Listing
BRESTful API Mobile Language
CREST Application Modeling Language
DRESTful API Modeling Language
Lời giải
RAML là viết tắt của từ RESTful API Modeling Language. Đây là một ngôn ngữ mô hình hóa API được thiết kế để giúp các nhà phát triển tạo ra các mô hình API dễ dàng và thống nhất. RAML cho phép các nhà phát triển mô tả các API của họ bằng cách sử dụng các mô hình và các thành phần khác nhau, bao gồm các phương thức HTTP, các đầu vào và đầu ra, và các thuộc tính khác. Điều này giúp các nhà phát triển khác dễ dàng hiểu và sử dụng các API được tạo ra bằng RAML. Ngoài ra, RAML cũng hỗ trợ các tính năng như kiểm tra tính hợp lệ và tạo tài liệu API tự động, giúp giảm thiểu thời gian và công sức trong quá trình phát triển và bảo trì API.
Mở trang câu hỏi này →
AL
Bhash
Ccrypto
DTLS
Lời giải
Module crypto trong Node.js cung cấp các lớp và hàm để mã hóa dữ liệu. Nó bao gồm các lớp và hàm để mã hóa và giải mã dữ liệu, tạo và quản lý khóa, cũng như các hàm để tạo và quản lý chứng chỉ. Các lớp và hàm trong module crypto được xây dựng trên các phương thức của OpenSSL, một thư viện mã hóa mã nguồn mở.
Mở trang câu hỏi này →
Adigital certificates
BWEP
CRADIUS
Dbiometrics
Lời giải
Phương pháp xác thực dựa trên đặc điểm sinh học là phương pháp xác thực nhận dạng và nhận biết con người dựa trên các đặc điểm vật lý như vân tay. Phương pháp này sử dụng các đặc điểm sinh học như vân tay, khuôn mặt, mống mắt, giọng nói, v.v. để xác thực người dùng. Phương pháp xác thực dựa trên đặc điểm sinh học được sử dụng rộng rãi trong các lĩnh vực như an ninh, tài chính và y tế vì nó cung cấp mức độ bảo mật cao và khó bị giả mạo.
Mở trang câu hỏi này →
Aauthentication
Bauthorization
Caccounting
Dauditing
Lời giải
Trong lĩnh vực bảo mật thông tin, thuật ngữ được sử dụng để chỉ quá trình cấp quyền truy cập cá nhân vào một hệ thống hoặc tài nguyên được gọi là "quyền truy cập". Quá trình này liên quan đến việc xác định xem ai có thể truy cập vào hệ thống hoặc tài nguyên đó và những gì họ có thể làm khi đã truy cập vào đó. Quyền truy cập thường được thực hiện sau khi đã xác thực danh tính người dùng, nghĩa là sau khi đã xác minh rằng người dùng là ai.
Mở trang câu hỏi này →
Afunction insertData(dbName, colName, num) { ar col = db.getSiblingDB(dbName).getCollection(colName); for (i = 0; i < num; i++) col.insert({x:i}); print(col.count()); }
Bfunction insertData(dbName, colName, num) { var col = db.getSiblingDB(dbName).getCollection(colName); for (i = 0; i < num; i++) t vclinsert(bciy print(col.count()); }
CinsertData(dbName, colName, num) { var col = db.getSiblingDB(dbName).getCollection(colName); for (i = 0; i < num; i++) col.insert({x:i}); ny en nes. tae vy }
Lời giải

Để tạo mới dữ liệu trong MongoDB Shell, chúng ta cần sử dụng hàm insertData. Hàm này có thể được sử dụng để thêm nhiều bản ghi vào một collection. Ví dụ, nếu chúng ta muốn thêm 10 bản ghi vào collection 'users' trong cơ sở dữ liệu 'mydb', chúng ta có thể sử dụng hàm insertData như sau: function insertData(dbName, colName, num) {

Lời giải
var col = db.getSiblingDB(dbName).getCollection(colName);
for (i = 0; i < num; i++) col.insert({
  x:i
}

); print(col.count()); } insertData('mydb', 'users', 10); Hàm insertData sẽ tạo mới 10 bản ghi với giá trị 'x' từ 0 đến 9 và in ra tổng số bản ghi trong collection 'users'.

Mở trang câu hỏi này →
Đề bài
for (i = 0; i < num; i++) col.insertData({
  x:i
}
Đề bài
col.count());
Afunction insertData(dbName, colName, num) var col = db.getSiblingDB(dbName).getCollection(colName); for (i = 0; i < num; i++) col.insert({x:i}); print(col.count());
BinsertData(dbName, colName, num) var col = db.getSiblingDB(dbName).getCollection(colName); for (i = 0; i < num; i++) col.insert({x:i}); print(col.count());
CNone of the mentioned
D[]
Lời giải
Ví dụ này mô tả một hàm insertData được sử dụng để chèn dữ liệu vào một collection trong cơ sở dữ liệu MongoDB. Hàm này nhận vào ba tham số: tên cơ sở dữ liệu (dbName), tên collection (colName), và số lượng dữ liệu cần chèn (num). Trong vòng lặp for, hàm insertData chèn dữ liệu vào collection với giá trị x tăng dần từ 0 đến num-1. Sau khi chèn dữ liệu, hàm in ra số lượng bản ghi trong collection. Ví dụ này sử dụng biến i để tăng dần giá trị x trong mỗi lần chèn dữ liệu.
Mở trang câu hỏi này →
AWebservices based on REST Architecture are known as RESTful web services
BWeb services uses HTTP methods to implement the concept of REST architecture
CAll the answers are correct
DAll the answers are wrong
Lời giải
RESTful web services là một loại dịch vụ web dựa trên kiến trúc REST (Representational State of Resource). Kiến trúc này cho phép các ứng dụng giao tiếp với nhau thông qua các phương thức HTTP như GET, POST, PUT, DELETE. Điều này giúp tạo ra các dịch vụ web linh hoạt, dễ dàng sử dụng và bảo mật. Các dịch vụ web RESTful thường sử dụng các phương thức HTTP để thực hiện các hành động như đọc, tạo, cập nhật và xóa dữ liệu. Điều này giúp tạo ra các ứng dụng web mạnh mẽ và dễ dàng tích hợp với các hệ thống khác.
Mở trang câu hỏi này →