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.
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.
Luyện tập theo chủ đề này
Câu hỏi của chủ đề
app.get('/', (req, res) => res.render('home', {
title: 'Home'
})); //
home.ejs <h1>
<%= title %>
</h1>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>.
profile.handlebars <p>{
{
greeting
}
}</p>
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>.
Đề 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.