- आप रूट स्तर पर app.render को कॉल कर सकते हैं और केवल रूट/मिडलवेयर के अंदर ही res.render कर सकते हैं।
app.render
कॉलबैक फ़ंक्शन में हमेशा html लौटाता है, जबकिres.render
ऐसा तभी करता है जब आपने कॉलबैक फ़ंक्शन को अपने तीसरे पैरामीटर के रूप में निर्दिष्ट किया हो। अगर आपres.render
को कॉल करते हैं तीसरे पैरामीटर/कॉलबैक फ़ंक्शन के बिना रेंडर किया गया एचटीएमएल क्लाइंट को 200 के स्टेटस कोड के साथ भेजा जाता है।
निम्नलिखित उदाहरणों पर एक नज़र डालें।
app.render
app.render('index', {title: 'res vs app render'}, function(err, html) {
console.log(html)
});
res.render
तीसरे पैरामीटर के बिना
app.get('/render', function(req, res) {
res.render('index', {title: 'res vs app render'})
})
res.render
तीसरे पैरामीटर के साथ
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
app.render
. का उपयोग करता है आंतरिक रूप से टेम्पलेट फ़ाइलें प्रस्तुत करने के लिए।can't set headers
इसका मतलब है कि आप शरीर में प्रवेश नहीं कर सकते।res.render()
फ़ंक्शन आपके टेम्प्लेट को संकलित करता है (कृपया ejs का उपयोग न करें), वहां स्थानीय लोगों को सम्मिलित करता है, और उन दो चीजों से html आउटपुट बनाता है।
// यहां आप सेट करते हैं कि सभी टेम्प्लेट /views
. में स्थित हैं निर्देशिका
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});
तो, टेम्पलेट पथ है views/
(पहला भाग) + local
(दूसरा भाग) + .ejs
(तीसरा भाग) ===views/local.ejs