2

我是 Handlebars 的新手,我正在尝试将 SWAG 库用于自定义助手,但没有成功。例如,我尝试在我的 file.handlebars {{lowercase "BENDER SHOULD NOT BE ALLOWED ON TV"}}中显示错误错误:找不到属性“小写” 我运行npm install swag

我的 app.js 是:

var express = require('express')
  , http = require('http')
  , routes = require('./routes')
  , path = require('path')
  ,Swag = require('swag')
  , handlebars = require('handlebars');

var app = express();
var engines = require('consolidate');
app.engine('handlebars', engines.handlebars);

app.configure(function() {
    app.set('view engine', 'handlebars');
    app.set('views', __dirname + '/views');
    app.set('port', process.env.PORT || 3000);
    app.use(express.favicon());
    app.use(express.logger('dev'));
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(app.router);
    app.use(express.static(path.join(__dirname, 'public')));
});

app.get('/dashBoard', routes.getDashboard);

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

预先感谢您的帮助

阿尔库迪亚

4

2 回答 2

0

你可以试试:

Swag.registerHelpers(车把);

于 2015-01-07T14:01:04.743 回答
0

我不是 100% 确定,但我猜这个consolidate包返回它自己的 Handlebars 语言环境副本。因此,它不是您需要的 Handlebars,也不是应用 swag 的全局 Handlebars。

图解:require("Handlebars") !== require("consolidate").handlebars

所以,我现在的猜测是,您需要在合并车把实例上注册 swags 助手。(在那里,我检查了 Swag 代码源,我认为这不可能是 ATM)

于 2013-05-04T16:03:11.987 回答