我是 Handlebars 新手,我正在尝试使用 SWAG 库来实现自定义帮助程序,但没有成功。 例如,我尝试在我的 file.handlebars 中显示 {{lowercase "BENDER SHOULD NOT BE ALLOWED ON TV"}} 并收到错误 Error: Could not find property 'lowercase' 我运行了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'));
});
提前感谢您的帮助
阿尔库迪亚
最佳答案
我不是 100% 确定,但我的猜测是 consolidate
包返回它自己的 Handlebars 区域设置副本。因此,它不是您需要的 Handlebars,也不是应用 swag 的全局 Handlebars。
示意:require("Handlebars") !== require("consolidate").handlebars
所以,我现在的猜测是,您需要在合并 Handlebars 实例上注册赃物助手。 (在那里,我检查了 Swag 代码源,我认为这不可能是 ATM)
关于node.js - Handlebars SWAG 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16372494/