Chủ đề của Server-Side development with NodeJS, Express, and MongoDB

SDN302 Chương 7 - Template engine EJS và Handlebars

Chương 7 môn SDN302 giới thiệu hai bộ máy tạo khuôn mẫu chạy phía máy chủ: EJS với cú pháp nhúng JavaScript qua thẻ <%= %> và phần mở rộng tệp .ejs, cách truyền dữ liệu từ res.render sang khuôn mẫu để kết xuất nội dung động, tái sử dụng phần đầu trang và chân trang chung; cùng Handlebars với cú pháp hai ngoặc nhọn và partials cho phép tách các mảnh giao diện dùng lại được. Trọn bộ câu hỏi trắc nghiệm có giải thích.

Xem danh sách câu hỏi5 câu hỏi100% có giải thích

Bắt đầu bằng Chế độ học nếu bạn muốn đáp án và giải thích hiện ngay sau mỗi câu — không bấm giờ, dừng lúc nào cũng được. Chọn Thi thử khi muốn biết mình đang ở đâu: có bấm giờ, chấm điểm ở cuối, và giải thích chỉ mở sau khi nộp.

Học ngân hàng câu hỏi của chủ đề

Luyện tập theo chủ đề này

5Câu hỏi hiện có

Câu hỏi của chủ đề

5/5 câuHết danh sách
A<%- include('header') %> includes the header partial.
B<%- include('footer') %> includes the footer partial.
C<h2>Welcome to the Home Page</h2> includes the content.
D<title>Home</title> sets the page title.
Lời giải
Để bao gồm một tiêu đề và chân trang chung trong nhiều template EJS, bạn cần sử dụng lệnh include. Lệnh này cho phép bạn bao gồm một phần tử khác vào trong một template. Ví dụ, để bao gồm tiêu đề và chân trang, bạn có thể sử dụng lệnh <%- include('header') %> và <%- include('footer') %>. Điều này giúp bạn tránh phải lặp lại mã nguồn và dễ dàng quản lý các phần tử chung.
Mở trang câu hỏi này →
2Which file extension is typically used for EJS templates?4 lựa chọnDễ100% trả lời đúng
A.ejs
B.html
C.js
D.tpl
Lời giải
EJS (Embedded JavaScript) là một loại mẫu mẫu HTML cho phép bạn sử dụng JavaScript bên trong các tệp tin mẫu. Khi sử dụng EJS, bạn có thể tạo ra các tệp tin mẫu có thể được sử dụng trong các ứng dụng web. Để xác định một tệp tin EJS, bạn cần biết rằng nó thường có phần mở rộng là .ejs. Điều này giúp cho máy tính biết rằng tệp tin đó là một tệp tin EJS và có thể được xử lý theo cách đặc biệt. Các phần mở rộng khác như .html, .js và .tpl không phải là các phần mở rộng chính thức cho EJS.
Mở trang câu hỏi này →
3What is the role of Handlebars partials?4 lựa chọnTrung bình67% trả lời đúng
AThey allow for reusable template pieces
BThey define conditional logic in templates
CThey manage server-side routing
DThey compile templates into JavaScript
Lời giải
Handlebars partials là một tính năng quan trọng trong Handlebars, giúp bạn tái sử dụng các phần mẫu (template pieces) một cách hiệu quả. Khi bạn tạo một partial, bạn có thể sử dụng nó trong nhiều template khác nhau mà không cần phải lặp lại mã nguồn. Điều này giúp giảm thiểu sự lặp lại và tăng cường tính linh hoạt trong việc thiết kế và phát triển ứng dụng. Ví dụ, bạn có thể tạo một partial cho phần header hoặc footer của trang web, sau đó sử dụng nó trong nhiều template khác nhau. Điều này giúp bạn dễ dàng cập nhật và bảo trì mã nguồn của mình.
Mở trang câu hỏi này →
4What renders in this EJS template with data { title: 'Home' }? // app.js4 lựa chọncó codeDễ100% trả lời đúng
Đề bài
app.get('/', (req, res) => res.render('home', {
  title: 'Home'
}

)); //

Đề bài
home.ejs <h1>
<%= title %>
</h1>
A<h1>Home</h1>
B<h1><%= title %></h1>
CTemplate string if data not passed correctly
DDynamic content based on passed object
Lời giải

Trong câu hỏi này, chúng ta được hỏi về việc render trong template EJS. Template EJS là một loại template được sử dụng trong Node.js để render dữ liệu thành HTML. Trong ví dụ này, chúng ta có một route '/' trong ứng dụng Express.js, và một template 'home.ejs'. Template này sử dụng biểu thức <%= %> để render dữ liệu từ đối tượng được truyền vào. Đối tượng này có một thuộc tính 'title' với giá trị 'Home'. Khi render template, biểu thức <%= title %> sẽ được thay thế bằng giá trị của thuộc tính 'title', tức là 'Home'. Do đó, kết quả render sẽ là <h1>Home</h1>.

Mở trang câu hỏi này →
5What 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 →

Đề có câu hỏi của chủ đề này

2 đề chứa ít nhất một câu thuộc chủ đề — mở đề để làm cả bộ, không chỉ từng câu.