- Anda dapat memanggil app.render di tingkat root dan res.render hanya di dalam route/middleware.
app.renderselalu mengembalikan html dalam fungsi panggilan balik, sedangkanres.rendermelakukannya hanya jika Anda telah menetapkan fungsi panggilan balik sebagai parameter ketiga Anda. Jika Anda memanggilres.rendertanpa 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.rendermenggunakanapp.rendersecara internal untuk merender file template.can't set headersberarti 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