当我尝试在 node.js 文件中注册把手助手时,我收到错误消息:
exphbs.registerHelper("hlp", function(num) { TypeError: exphbs.registerHelper 不是函数
代码:
exphbs.registerHelper("hlp", function(num) {
num = num.toString();
return "(" + num + ") ";
});
当我尝试在 node.js 文件中注册把手助手时,我收到错误消息:
exphbs.registerHelper("hlp", function(num) { TypeError: exphbs.registerHelper 不是函数
代码:
exphbs.registerHelper("hlp", function(num) {
num = num.toString();
return "(" + num + ") ";
});
重要的是要注意您正在使用express-handlebars
,这是一个允许在 express 中使用把手作为视图引擎的插件。所以你得到的对象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');
如果你想在单独的文件中定义你的助手,而不是在一个地方(我会):
var hbs = exphbs.create({
// Specify helpers which are only registered on this instance.
helpers: {
foo: require('./helpers/foo'),
bar: require('./helpers/bar')
}
});
foo.js:
module.exports = function () { return 'FOO!'; }