- 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.renderluôn trả về html trong hàm gọi lại, trong khires.renderchỉ 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.rendermà 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.rendersử dụngapp.rendernội bộ để hiển thị các tệp mẫu. -
can't set headersnghĩ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