当我尝试在node.js文件中注册把手助手时,收到错误消息:
exphbs.registerHelper(“hlp”,function(num){TypeError: exphbs.registerHelper不是函数
代码:
exphbs.registerHelper("hlp", function(num) {
num = num.toString();
return "(" + num + ") ";
});
答案 0 :(得分:3)
注意您使用express-handlebars
非常重要,require('express-handlebars')
是一个插件,允许在快递中使用把手作为视图引擎。因此,您从Handlebars
获得的对象不会成为var hbs = exphbs.create({
// Specify helpers which are only registered on this instance.
helpers: {
foo: function () { return 'FOO!'; },
bar: function () { return 'BAR!'; }
}
});
app.engine('handlebars', hbs.engine);
app.set('view engine', 'handlebars');
个实例。
好消息是你仍然可以设置助手。该模块的文档有an example:
var hbs = exphbs.create({
// Specify helpers which are only registered on this instance.
helpers: {
foo: require('./helpers/foo'),
bar: require('./helpers/bar')
}
});
如果你想在不同的文件中定义助手而不是在这一个地方(我愿意):
module.exports = function () { return 'FOO!'; }
foo.js:
{{1}}