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 5/6 — câu 81–100.
Danh sách câu hỏi
100/109 câuCòn 9
81MongoDB stores all documents in4 lựa chọn
ATables
BCollections
CRows
DAll of the mentioned
Lời giải
Mở trang câu hỏi này →MongoDB là một hệ quản trị cơ sở dữ liệu NoSQL, nó lưu trữ dữ liệu dưới dạng các tài liệu (documents) thay vì các bảng (tables) như trong cơ sở dữ liệu quan hệ. Mỗi tài liệu trong MongoDB có thể có cấu trúc khác nhau và có thể chứa nhiều loại dữ liệu khác nhau. Các tài liệu trong MongoDB được lưu trữ trong các tập hợp (collections), mỗi tập hợp có thể chứa nhiều tài liệu khác nhau. Vì vậy, câu trả lời đúng cho câu hỏi này là "Collections".
82What is a process object and its role?4 lựa chọn
Aa locally scoped object that provides information about the current node process
Ba global object that provides information about files
Ca global object that provides information about the database
Da global object that provides information about the current node process
Lời giải
Mở trang câu hỏi này →Một đối tượng quy trình (process object) là một đối tượng được sử dụng trong Node.js để cung cấp thông tin về quy trình hiện tại đang chạy. Đối tượng này cung cấp các thuộc tính và phương thức để truy cập thông tin về quy trình, chẳng hạn như ID quy trình, tên quy trình, thời gian bắt đầu và kết thúc, v.v. Đối tượng quy trình đóng vai trò quan trọng trong việc quản lý và theo dõi quy trình trong Node.js. Nó cho phép các nhà phát triển có thể theo dõi và quản lý quy trình của ứng dụng một cách hiệu quả.
83Which statement about event emitters is false?4 lựa chọn
AEvent names must be camelCase strings
BThe emit method allows a arbitrary set of arguments to be passed to the listener functions
CAny values returned by the listeners for an emitted events are ignored
DWhen an event emitter object emits an event, all of the functions attached to that specific event are called synchronously
Lời giải
Mở trang câu hỏi này →Câu hỏi này yêu cầu bạn xác định câu nào về event emitters là sai. Câu 1 nói rằng tên sự kiện phải là chuỗi camelCase, điều này đúng vì trong Node.js, tên sự kiện thường được viết theo quy tắc camelCase. Câu 2 cho biết phương thức emit cho phép truyền một tập hợp các giá trị tùy ý cho các hàm lắng nghe, điều này cũng đúng vì hàm emit có thể nhận nhiều tham số. Câu 3 nói rằng bất kỳ giá trị nào được trả về bởi các hàm lắng nghe cho một sự kiện được phát ra đều bị bỏ qua, điều này đúng vì Node.js không hỗ trợ trả về giá trị từ các hàm lắng nghe. Câu 4 nói rằng khi một đối tượng event emitter phát ra một sự kiện, tất cả các hàm được gắn vào sự kiện đó đều được gọi đồng bộ, điều này sai vì các hàm lắng nghe được gọi theo thứ tự và không đồng bộ.
app.post('/process', function(req, res){
var data = ''; if(req.xhr){
data += 'One'; if(req.body.name){
data += 'Two'; res.send(data);AOne
BTwo
COneTwo
DAll of these
Lời giải
Mở trang câu hỏi này →Khi bạn gửi yêu cầu AJAX POST đến đường dẫn '/process' với dữ liệu {name: 'john'} và một hàm callback, thì câu trả lời từ server sẽ là gì?
Areq - the request object
Bres - the response object
Cnext
Dall of the others
Lời giải
Mở trang câu hỏi này →Các tham số có sẵn cho các hàm xử lý tuyến đường Express.js bao gồm các đối tượng yêu cầu và phản hồi. Đối tượng yêu cầu (req) chứa thông tin về yêu cầu từ khách hàng, bao gồm phương thức HTTP, địa chỉ URL, đầu vào và các tiêu đề. Đối tượng phản hồi (res) cho phép bạn trả về phản hồi cho khách hàng, bao gồm mã trạng thái, nội dung và các tiêu đề. Ngoài ra, tham số next cho phép bạn chuyển tiếp xử lý cho các tuyến đường khác.
AChanges are not backwards compatible
BChanges might not be backward compatible and might break existing code
CChanges are just bug fixes and no new features were added
DChanges will add new functionality but will not break any existing code
Lời giải
Mở trang câu hỏi này →Theo quy tắc phiên bản ngữ nghĩa, khi một phiên bản npm tăng số thứ ba trong chuỗi phiên bản, điều này cho biết với người dùng về những thay đổi trong phiên bản. Theo đó, việc tăng số thứ ba trong chuỗi phiên bản chỉ cho biết những thay đổi trong phiên bản này là sửa lỗi và không thêm bất kỳ tính năng mới nào. Điều này có nghĩa là phiên bản mới này sẽ không phá vỡ bất kỳ mã hiện có nào và vẫn tương thích ngược với phiên bản trước đó. Tuy nhiên, điều này không có nghĩa là phiên bản mới này không thể phá vỡ mã hiện có, nhưng điều này không được đảm bảo.
87What will this code fog to the console? File: person.js exports.name = "Jane"; File: index.js const person = require('./person.js');4 lựa chọncó code
console.log(person);AJane
Bname: 'Jane'
Cf
DJane
Lời giải
Mở trang câu hỏi này →Mã nguồn này sẽ in ra 'Jane' trên console. Vì trong file person.js, chúng ta đã export một biến tên là name với giá trị là 'Jane'. Sau đó, trong file index.js, chúng ta đã import biến này và sử dụng console.log() để in ra giá trị của nó. Tuy nhiên, trong câu hỏi, có một số lựa chọn không chính xác. Lựa chọn 'name: 'Jane'' không đúng vì chúng ta chỉ in ra giá trị của biến name, không phải là biến name nóself. Lựa chọn 'f' không đúng vì không có biến nào tên là 'f' trong mã nguồn này. Vì vậy, câu trả lời đúng duy nhất là 'Jane'.
A
lookupB
resolveC
resolve4D
reverseLời giải
Mở trang câu hỏi này →Phương thức DNS module nào sử dụng cơ sở hạ tầng của hệ điều hành và không nhất thiết phải thực hiện giao tiếp mạng? Để trả lời câu hỏi này, chúng ta cần hiểu về các phương thức DNS module khác nhau.
Lookup là phương thức tìm kiếm DNS module, nó thường thực hiện giao tiếp mạng để tìm kiếm thông tin DNS.
Resolve là phương thức giải quyết DNS module, nó cũng thường thực hiện giao tiếp mạng để tìm kiếm thông tin DNS.
Resolve4 là phương thức giải quyết DNS module cho IPv4, nó cũng thường thực hiện giao tiếp mạng để tìm kiếm thông tin DNS.
Reverse là phương thức ngược DNS module, nó sử dụng cơ sở hạ tầng của hệ điều hành để tìm kiếm thông tin DNS mà không nhất thiết phải thực hiện giao tiếp mạng.
Vì vậy, phương thức DNS module sử dụng cơ sở hạ tầng của hệ điều hành và không nhất thiết phải thực hiện giao tiếp mạng là reverse.
AThe libuv library
BThe c-ares library
CThe VM (like VS or Chakra)
DThe REPL module
Lời giải
Mở trang câu hỏi này →Khi chạy JavaScript trong một ứng dụng Node.js, yếu tố thực thi JavaScript trong một bộ đệm Node.js là gì? Câu trả lời đúng là "The VM (như VS hoặc Chakra)". Yếu tố này thực hiện các lệnh JavaScript bằng cách sử dụng một môi trường ảo (Virtual Machine). Môi trường ảo này giống như một máy ảo, nơi mà JavaScript được thực thi mà không cần phải chạy trên trình duyệt. Môi trường ảo được sử dụng để thực thi JavaScript trong Node.js vì nó cho phép Node.js thực thi JavaScript một cách nhanh chóng và hiệu quả. Ngoài ra, môi trường ảo cũng cho phép Node.js quản lý bộ nhớ và các tài nguyên khác một cách hiệu quả.
A
LinuxB
WindowsC
BothAandBD
NoneLời giải
Mở trang câu hỏi này →Để bật chế độ debug trong ứng dụng Express, bạn cần sử dụng các lệnh sau. Tuy nhiên, các lệnh này có thể khác nhau tùy thuộc vào hệ điều hành mà bạn đang sử dụng. Đối với hệ điều hành Linux, bạn có thể sử dụng lệnh 'DEBUG=express:* node app.js' để bật chế độ debug. Đối với hệ điều hành Windows, bạn có thể sử dụng lệnh 'set DEBUG=express:* & node app.js' để bật chế độ debug. Vì vậy, câu trả lời đúng là cả Linux và Windows.
A
ftpB
eventsC
dgramD
http2Lời giải
Mở trang câu hỏi này →Các module trong Node.js là các tập tin JavaScript được Node.js sử dụng để thực hiện các chức năng khác nhau. Trong số các module được liệt kê, có ba module được xây dựng sẵn trong Node.js: events, dgram và http2. Tuy nhiên, module ftp không phải là một module được xây dựng sẵn trong Node.js. Thay vào đó, nó là một module được cài đặt riêng biệt và có thể được sử dụng để kết nối với các máy chủ FTP.
A
http.ServerRequestB
http.IncomingMessageC
http.ClientRequestD
http.ServerResponseLời giải
Mở trang câu hỏi này →Khi một sự kiện yêu cầu được nhận trong mô-đun HTTP, loại đối số đầu tiên được truyền đến sự kiện đó, thường được đặt tên là req, là gì? Để trả lời câu hỏi này, chúng ta cần hiểu về các loại đối tượng được sử dụng trong mô-đun HTTP. Trong Node.js, mô-đun HTTP sử dụng các đối tượng như http.IncomingMessage, http.ServerRequest, http.ClientRequest và http.ServerResponse để xử lý các yêu cầu HTTP. Tuy nhiên, đối số đầu tiên được truyền đến sự kiện yêu cầu thường là một đối tượng http.IncomingMessage hoặc http.ServerRequest, tùy thuộc vào loại yêu cầu được xử lý. Đối tượng http.IncomingMessage đại diện cho một yêu cầu HTTP đang được xử lý, trong khi đối tượng http.ServerRequest đại diện cho một yêu cầu HTTP đã được xử lý và đã được chuyển đến một hàm xử lý. Vì vậy, khi một yêu cầu event được nhận trong mô-đun HTTP, loại đối số đầu tiên được truyền đến sự kiện đó thường là http.ServerRequest.
A
exportsB
processC
requireD
moduleLời giải
Mở trang câu hỏi này →Khi một module được yêu cầu, Node.js sẽ tạo ra một đối tượng module wrapper để chứa module đó. Đối tượng này sẽ được gọi là module.exports. Các argument được truyền vào hàm wrapper module bao gồm module, exports, process và require. Trong đó, module là đối tượng module wrapper, exports là đối tượng exports của module, process là đối tượng process của Node.js và require là hàm require của Node.js. Tuy nhiên, chỉ có module là bắt buộc phải được truyền vào hàm wrapper module.
ANode being a single thread, and uses async function calls to maintain the concurrency
BEvery API of Node js are asynchronous
CNode thread keeps an event loop and whenever any task get completed, it fires the corresponding event which signals the event listener function to get executed
DAll of the others
Lời giải
Mở trang câu hỏi này →Node.js là một nền tảng phát triển ứng dụng dựa trên JavaScript. Nó được thiết kế để xử lý các yêu cầu đồng thời một cách hiệu quả. Theo đó, Node.js sử dụng một luồng (event loop) để quản lý các yêu cầu và các sự kiện. Khi một yêu cầu được xử lý xong, Node.js sẽ kích hoạt sự kiện tương ứng, sau đó thông báo cho hàm xử lý sự kiện (event listener) được thực thi. Điều này cho phép Node.js xử lý các yêu cầu đồng thời mà không cần phải chờ đợi kết quả của từng yêu cầu. Ngoài ra, Node.js cũng sử dụng các hàm async để thực hiện các tác vụ đồng thời, giúp tăng hiệu suất và giảm thiểu thời gian chờ đợi.
AAvoid Nesting Data
BDenormalize Data
CBothAandB
DAll the answers are wrong
Lời giải
Mở trang câu hỏi này →Firebase là một nền tảng phát triển ứng dụng di động và web, giúp bạn xây dựng và quản lý ứng dụng một cách dễ dàng. Khi sử dụng Firebase, có một số nguyên tắc tốt nhất mà bạn nên tuân theo để đảm bảo hiệu suất và bảo mật của ứng dụng. Một trong những nguyên tắc tốt nhất là không nên tổ chức dữ liệu quá sâu (Avoid Nesting Data). Điều này có nghĩa là bạn nên tránh tổ chức dữ liệu theo một cách quá phức tạp, mà nên sử dụng các cấu trúc dữ liệu đơn giản và dễ hiểu. Ngoài ra, việc tổ chức dữ liệu quá sâu có thể dẫn đến hiệu suất chậm và khó khăn trong việc truy vấn dữ liệu. Một nguyên tắc khác là denormalize dữ liệu (Denormalize Data). Điều này có nghĩa là bạn nên lưu trữ dữ liệu theo một cách không đồng nhất với cấu trúc dữ liệu gốc. Ví dụ, bạn có thể lưu trữ dữ liệu theo một cách phân cấp, hoặc theo một cách không phân cấp. Việc denormalize dữ liệu có thể giúp cải thiện hiệu suất và giảm thiểu thời gian truy vấn dữ liệu. Vì vậy, cả hai nguyên tắc này đều là tốt nhất khi sử dụng Firebase.
Akey()
Bfirebase.key()
Cfb.key()
Dfirebase().key
Lời giải
Mở trang câu hỏi này →Để lấy bất kỳ khóa nào từ Firebase, chúng ta có thể sử dụng phương thức key(). Phương thức này cho phép chúng ta lấy khóa của một đối tượng trong cơ sở dữ liệu Firebase. Ví dụ, nếu chúng ta muốn lấy khóa của một đối tượng có id 'user123', chúng ta có thể sử dụng phương thức key() như sau: firebase.database().ref('users/user123').key(). Phương thức key() rất hữu ích khi chúng ta cần lấy khóa của một đối tượng để thực hiện các hành động khác nhau, chẳng hạn như xóa hoặc cập nhật dữ liệu.
97is the term used in reference to two or more authentication methods used to authenticate someone.4 lựa chọn
AMultifactor authentication
BTwo-factor authentication
CSingle Sign On
DPasswords
Lời giải
Mở trang câu hỏi này →Hai phương thức xác thực là hai hay nhiều phương thức xác thực được sử dụng để xác thực một người dùng. Ví dụ, một người dùng có thể sử dụng mật khẩu và mã OTP (One Time Password) để xác thực. Phương thức này được gọi là xác thực đa yếu tố (Multifactor authentication).
A
SETB
GETC
PUTD
USELời giải
Mở trang câu hỏi này →Để viết hoặc thay thế dữ liệu trên một đường dẫn xác định, chúng ta cần sử dụng phương pháp PUT. Phương pháp PUT là một trong những phương pháp cơ bản trong RESTful API, được sử dụng để tạo hoặc thay thế một tài nguyên trên máy chủ. Khi sử dụng phương pháp PUT, chúng ta cần cung cấp đầy đủ thông tin về tài nguyên mà chúng ta muốn tạo hoặc thay thế, bao gồm cả dữ liệu và các thuộc tính liên quan. Phương pháp PUT khác với phương pháp POST ở chỗ, POST được sử dụng để tạo một tài nguyên mới, trong khi PUT được sử dụng để thay thế một tài nguyên hiện có. Ngoài ra, phương pháp PUT cũng khác với phương pháp PATCH ở chỗ, PATCH được sử dụng để cập nhật một phần của tài nguyên, trong khi PUT được sử dụng để thay thế toàn bộ tài nguyên. Vì vậy, khi cần viết hoặc thay thế dữ liệu trên một đường dẫn xác định, chúng ta nên sử dụng phương pháp PUT.
AFront-end
BBack-end
CDatabase
DAll the answers are wrong
Lời giải
Mở trang câu hỏi này →Express.js (hay đơn giản là Express) là một khung ứng dụng web cho Node.js. Nó cho phép bạn xây dựng các ứng dụng web nhanh chóng và hiệu quả. Express.js cung cấp các tính năng như hỗ trợ các phương thức HTTP, quản lý các yêu cầu và phản hồi, cũng như các công cụ khác để xây dựng các ứng dụng web mạnh mẽ. Nó thường được sử dụng để xây dựng các ứng dụng web back-end, nơi nó chịu trách nhiệm xử lý các yêu cầu và phản hồi từ phía máy khách.
Amongo.js
Bmongoc.js
Cmongorc.js
Dall of the mentioned
Lời giải
Mở trang câu hỏi này →Khi bạn khởi động mongo shell, nó sẽ tải và phân tích một số tệp nhất định. Trong số đó có mongorc.js, đây là tệp mà mongo shell sẽ đọc và thực thi khi khởi động. Ngoài ra, còn có mongoc.js và mongo.js, mặc dù không phải là tệp được đọc mặc định khi khởi động nhưng chúng vẫn có thể được sử dụng để lưu trữ các lệnh hoặc hàm có thể được gọi từ mongo shell. Vì vậy, câu trả lời đúng là tất cả các tệp được đề cập.