Đề ôn · SDN301M

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

47 câu · Thi lại · Summer 2024

47câu trong đề
SDN301Mmôn

Câu hỏi của đề

15/47 câuCòn 32
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
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ộ.
Mở trang câu hỏi này →
Aglobal.cache
Bmodule.cache
Cprocess.cache
Drequire.cache
Lời giải
Để quản lý bộ nhớ đệm (cache) của các mô-đun yêu cầu, chúng ta sử dụng một đối tượng cụ thể. Đối tượng này cho phép chúng ta kiểm soát và quản lý bộ nhớ đệm của các mô-đun đã được yêu cầu. Trong Node.js, đối tượng được sử dụng để quản lý bộ nhớ đệm của các mô-đun yêu cầu là 'require.cache'. Đối tượng này cho phép chúng ta thêm, xóa và kiểm tra các mô-đun đã được yêu cầu. Điều này giúp chúng ta tối ưu hóa hiệu suất và giảm thiểu thời gian tải mô-đun. Ngoài ra, đối tượng 'require.cache' cũng cho phép chúng ta kiểm tra các mô-đun đã được yêu cầu và quản lý bộ nhớ đệm của chúng.
Mở trang câu hỏi này →
Adev-tools
Binspect
Cchrome
Ddebug
Lời giải
Để debug một script Node.js trong Chrome DevTools, bạn có thể sử dụng tùy chọn CLI "debug". Tùy chọn này cho phép bạn mở Chrome DevTools và bắt đầu debug script ngay lập tức. Khi bạn sử dụng "debug", Node.js sẽ dừng lại tại dòng lệnh đầu tiên và mở Chrome DevTools để bạn có thể debug script. Điều này giúp bạn dễ dàng tìm và sửa lỗi trong script của mình. Ngoài ra, bạn cũng có thể sử dụng tùy chọn "inspect" để mở Chrome DevTools và debug script, nhưng "debug" là tùy chọn được khuyến nghị vì nó cho phép bạn bắt đầu debug script ngay lập tức.
Mở trang câu hỏi này →
Đề bài
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
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ì?
Mở trang câu hỏi này →
Areq - the request object
Bres - the response object
Cnext
Dall of the others
Lời giải
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.
Mở trang câu hỏi này →
AIt provides an easy way to build scalable network programs
BGenerally fast
CGreat concurrency
DAll the answers are correct
Lời giải
Node.js là một công nghệ phát triển ứng dụng web dựa trên JavaScript, cho phép xây dựng các ứng dụng mạng có khả năng mở rộng dễ dàng. Nó cung cấp một môi trường thực thi JavaScript ở bên ngoài trình duyệt, cho phép các nhà phát triển xây dựng các ứng dụng mạng hiệu suất cao và linh hoạt. Node.js sử dụng mô hình non-blocking I/O, cho phép các ứng dụng xử lý nhiều yêu cầu đồng thời mà không cần chờ đợi nhau. Điều này làm cho Node.js trở thành một lựa chọn phổ biến cho các ứng dụng mạng cần xử lý một lượng lớn dữ liệu và yêu cầu nhanh chóng.
Mở trang câu hỏi này →
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
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.
Mở trang câu hỏi này →
Đề bài
console.log(person);
AJane
Bname: 'Jane'
Cf
DJane
Lời giải
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'.
Mở trang câu hỏi này →
ADon't use synchronous functions
BUse gzip compression
CDo logging correctly
DHandle exceptions properly
Lời giải
Để cải thiện hiệu suất của ứng dụng, bạn nên tránh sử dụng các hàm đồng bộ (synchronous functions) trong mã nguồn của mình. Các hàm đồng bộ có thể gây ra tình trạng tắc nghẽn và làm chậm ứng dụng. Thay vào đó, bạn nên sử dụng các hàm bất đồng bộ (asynchronous functions) như async/await hoặc các thư viện như Promise để thực hiện các tác vụ một cách hiệu quả hơn. Điều này sẽ giúp ứng dụng của bạn xử lý các yêu cầu nhanh chóng và hiệu quả hơn, từ đó cải thiện hiệu suất và trải nghiệm người dùng.
Mở trang câu hỏi này →
Alookup
Bresolve
Cresolve4
Dreverse
Lời giải
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.
Mở trang câu hỏi này →
A_pathname
B_location
C_fider
D_filename
Lời giải
Trong khi thực hiện một chương trình Python, có thể cần biết đường dẫn tuyệt đối của tập tin hiện tại. Để giải quyết vấn đề này, Python cung cấp một số biến module có thể được sử dụng. Trong số đó, biến module nào giữ lại đường dẫn tuyệt đối của tập tin module hiện tại?
Mở trang câu hỏi này →
AThe libuv library
BThe c-ares library
CThe VM (like VS or Chakra)
DThe REPL module
Lời giải
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ả.
Mở trang câu hỏi này →
ALinux
BWindows
CBothAandB
DNone
Lời giải
Để 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.
Mở trang câu hỏi này →
Aftp
Bevents
Cdgram
Dhttp2
Lời giải
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.
Mở trang câu hỏi này →
Afail
BdoesNotThrow
CdeepStrictEqual
DifError
Lời giải
Trong lập trình Node.js, khi sử dụng các callback, chúng ta thường gặp trường hợp cần kiểm tra lỗi. Để làm điều này, chúng ta có thể sử dụng phương thức assert.ifError() từ module assert. Phương thức này sẽ kiểm tra xem argument đầu tiên của callback có phải là lỗi hay không. Nếu là lỗi, thì phương thức này sẽ không throw ra lỗi, ngược lại, nếu không phải là lỗi, thì phương thức này sẽ throw ra lỗi. Điều này giúp chúng ta dễ dàng kiểm tra và xử lý lỗi trong các callback.
Mở trang câu hỏi này →