- Bạn có thể gọi app.render ở cấp cơ sở và chỉ res.render bên trong một tuyến đường / phần mềm trung gian.
-
app.render
luôn trả về html trong hàm gọi lại, trong khires.render
chỉ làm như vậy khi bạn đã chỉ định hàm gọi lại làm tham số thứ ba của mình. Nếu bạn gọires.render
mà không có tham số thứ ba / hàm gọi lại, html được hiển thị sẽ được gửi đến máy khách với mã trạng thái là 200.
Hãy xem các ví dụ sau.
app.render
app.render('index', {title: 'res vs app render'}, function(err, html) {
console.log(html)
});
res.render
không có tham số thứ ba
app.get('/render', function(req, res) {
res.render('index', {title: 'res vs app render'})
})
res.render
với tham số thứ ba
app.get('/render', function(req, res) {
res.render('index', {title: 'res vs app render'}, function(err, html) {
console.log(html);
res.send('done');
})
})
-
res.render
sử dụngapp.render
nội bộ để hiển thị các tệp mẫu. -
can't set headers
nghĩa là bạn không thể xâm nhập vào cơ thể. -
res.render()
function biên dịch mẫu của bạn (vui lòng không sử dụng ejs), chèn các local vào đó và tạo đầu ra html từ hai thứ đó.
// ở đây bạn đặt rằng tất cả các mẫu đều nằm trong /views
thư mục
app.set('views', __dirname + '/views');
// here you set that you're using `ejs` template engine, and the
// default extension is `ejs`
app.set('view engine', 'ejs');
// here you render `local` template
response.render("local", {local: local_json});
Vì vậy, đường dẫn mẫu là views/
(phần đầu) + local
(phần thứ hai) + .ejs
(phần thứ ba) ===views/local.ejs