TypeError:对象函数app(req,res){app.handle(req,res);没有方法'注册'

时间:2013-01-15 18:26:24

标签: node.js express

尝试使用带有nodejs的把手,我得到了这个错误" TypeError:对象函数app(req,res){app.handle(req,res);没有方法'注册'"。下面是nodejs的代码。相同的代码似乎适用于其他人,因为它几乎是NodeJS + Express + Handlebars - failed to locate view "index.html"的复制粘贴。附:我是nodejs的新手并试图感受它并且已经习惯了把手。

//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");

1 个答案:

答案 0 :(得分:5)

Express 3.0将app.register更改为app.engine。 Migrating to Express.js 3.0

  

某些模板引擎不遵循此约定,创建了consolidate.js库以映射所有节点的流行模板引擎以遵循此约定,从而允许它们在Express中无缝地工作。

npm install巩固

尝试以下方法:

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);
});
相关问题