2013-01-15 11 views
6

नोडजेस के साथ हैंडलबार का उपयोग करने की कोशिश कर रहा है और मुझे यह त्रुटि मिलती है "TypeError: ऑब्जेक्ट फ़ंक्शन ऐप (req, res) {app.handle (req, res);} में कोई विधि 'रजिस्टर' नहीं है"। नीचे नोडज के लिए कोड है। ऐसा लगता है कि वही कोड अन्य लोगों के लिए काम करता है क्योंकि यह NodeJS + Express + Handlebars - failed to locate view "index.html" का एक कॉपी पेस्ट है। अनुलेख मैं नोडज के लिए नया हूं और इसके लिए एक महसूस करने की कोशिश कर रहा हूं और पहले से ही हैंडलबार्स के लिए उपयोग किया जा रहा हूं।टाइप एरर: ऑब्जेक्ट फ़ंक्शन ऐप (रिक, आरएस) {app.handle (req, res); } में कोई विधि नहीं है 'रजिस्टर'

//Load Modules 
var express = require('express'); 
var handlebars = require('handlebars'); 

var app = express(); 

// Configuration 
app.configure(function() { 
    app.register('.html', handlebars); 
    app.set('views', __dirname + '/'); 
    app.set('view engine', 'handlebars'); 
    app.set("view options", { layout: false });  
}); 

// Routes 
app.get('/:first/:last', function(req, res) { 
    var data = {title:req.param.first + " " + req.param.last}; 
    res.render("template/profilecard.html", data); 
}); 

app.listen(3000); 

console.log("NodeJS Server Started"); 

उत्तर

6

एक्सप्रेस 3.0 ने app.register को app.regine में बदल दिया। Migrating to Express.js 3.0

Some template engines do not follow this convention, the consolidate.js library was created to map all of node's popular template engines to follow this convention, thus allowing them to work seemlessly within Express.

NPM स्थापित मजबूत

निम्नलिखित का प्रयास करें:

var engines = require('consolidate'); 

app.configure(function() { 

    app.set('views', __dirname + '/'); 
    app.set('view engine', 'handlebars'); 
    app.set("view options", { layout: false }); 
    app.engine('.html', engines.handlebars); 
}); 
+1

मैं हैंडल का उपयोग नहीं किया है, लेकिन मैं देख रहा हूँ वहाँ है https://github.com/donpark/hbs। यह वास्तव में एक बेहतर समाधान हो सकता है। app.set ('इंजन देखें', 'एचबीएस'); और app.engine ('html', आवश्यकता है ('hbs') .__ एक्सप्रेस); – thtsigma

+0

आपका उत्तर काम नहीं करता है, यह फ़ाइल नहीं ढूंढ रहा है, लेकिन इससे कोई त्रुटि नहीं मिली, हालांकि, आपके द्वारा छोड़ी गई टिप्पणी काम करती है (मैंने वास्तव में पहले ही इसे ठीक कर दिया था और सक्षम नहीं था यहां जवाब देने के लिए क्योंकि अब तक मेरा कोई इंटरनेट कनेक्शन नहीं था)। हालांकि धन्यवाद! – Charles

+2

वास्तव में यह काम करता है, जब मैं hbs का उपयोग करता हूं, तो फ़ाइल नाम पर फ़ाइल एक्सटेंशन की आवश्यकता होती है। – Charles

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^