- Anda dapat memanggil app.render di tingkat root dan res.render hanya di dalam route/middleware.
app.render
selalu mengembalikan html dalam fungsi panggilan balik, sedangkanres.render
melakukannya hanya jika Anda telah menetapkan fungsi panggilan balik sebagai parameter ketiga Anda. Jika Anda memanggilres.render
tanpa parameter/fungsi panggilan balik ketiga, html yang dirender dikirim ke klien dengan kode status 200.
Perhatikan contoh berikut.
app.render
app.render('index', {title: 'res vs app render'}, function(err, html) {
console.log(html)
});
res.render
tanpa parameter ketiga
app.get('/render', function(req, res) {
res.render('index', {title: 'res vs app render'})
})
res.render
dengan parameter ketiga
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
menggunakanapp.render
secara internal untuk merender file template.can't set headers
berarti Anda tidak bisa masuk ke dalam tubuh.res.render()
function mengkompilasi template Anda (jangan gunakan ejs), masukkan lokal di sana, dan buat keluaran html dari dua hal itu.
// di sini Anda mengatur bahwa semua template berada di /views
direktori
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});
Jadi, jalur templatnya adalah views/
(bagian pertama) + local
(bagian kedua) + .ejs
(bagian ketiga) ===views/local.ejs