मैं भी में एक ही मुद्दा का सामना करना पड़ा express 3.Xऔर node 0.6.16। ऊपर दिए गए समाधान नवीनतम संस्करण के लिए काम नहीं करेंगे express 3.x। उन्होंने app.registerविधि और जोड़ा app.engineविधि को हटा दिया । यदि आपने उपरोक्त समाधान की कोशिश की तो आप निम्न त्रुटि के साथ समाप्त हो सकते हैं।
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
TypeError: Object function app(req, res){ app.handle(req, res); } has no method 'register'
at Function.<anonymous> (/home/user1/ArunKumar/firstExpress/app.js:37:5)
at Function.configure (/home/user1/ArunKumar/firstExpress/node_modules/express/lib/application.js:399:61)
at Object.<anonymous> (/home/user1/ArunKumar/firstExpress/app.js:22:5)
at Module._compile (module.js:441:26)
at Object..js (module.js:459:10)
at Module.load (module.js:348:31)
at Function._load (module.js:308:12)
at Array.0 (module.js:479:10)
at EventEmitter._tickCallback (node.js:192:40)
त्रुटि संदेश से छुटकारा पाने के लिए। निम्नलिखित लाइन को अपने में जोड़ेंapp.configure function
app.engine('html', require('ejs').renderFile);
नोट: आपको ejsटेम्पलेट इंजन स्थापित करना होगा
npm install -g ejs
उदाहरण:
app.configure(function(){
.....
// disable layout
app.set("view options", {layout: false});
app.engine('html', require('ejs').renderFile);
....
app.get('/', function(req, res){
res.render("index.html");
});
नोट: सबसे सरल उपाय है ejs टेम्पलेट का उपयोग दृश्य इंजन के रूप में करना। वहाँ आप * .ejs फ़ाइलों को देखने में कच्चे HTML लिख सकते हैं।