1

Node & Express には比較的慣れていませんが、これまで使用したことのないハンドルバー テンプレートをノード app.js で参照しようとしていますが、次のエラーが発生し続けます。

オブジェクト # のプロパティ 'engine' は関数ではありません

これは私のコードです:

app.configure(function () {
        app.set('views', __dirname+ '/views');
        app.set('port', 3000);
        app.set('view engine', 'handlebars');
        app.use(handlebarsLayout);
        app.use(express.static(path.join(__dirname, 'public')));
        app.use(app.router);
    });

    // ROUTES
    app.get('/', function (req, res){ 
        var data = {
            title: "Node + Handlebars",
            body: "Hello World!"
        }

        res.render('index', data);
    });

    http.createServer(app).listen(app.get('port'), function () {
        console.log("Express server listening on port " + app.get('port'));
    });

どんな助けでも大歓迎です。

ありがとう、トム

4

2 に答える 2

0

you need to pass your directories for templates and helpers to the app. declare your js at the top.

var helpers = require('./private/js/myhelpers');

then in your app.configure:

// configure express
app.configure(function() {
     //handlebars implementation
     app.set('views', __dirname + '/views');
     app.set('view engine', 'handlebars');
     //handlebars helpers are registered in app.engine, helpers is our hbs.js file
     app.engine('handlebars', exphbs({defaultLayout: 'main', helpers: helpers}));
 ...
 });
于 2014-05-01T12:44:44.987 に答える