把手registerHelper错误:registerHelper不是一个函数

时间:2016-07-20 19:09:39

标签: node.js handlebars.js registerhelper

当我尝试在node.js文件中注册把手助手时,收到错误消息:

  

exphbs.registerHelper(“hlp”,function(num){TypeError:   exphbs.registerHelper不是函数

代码:

    exphbs.registerHelper("hlp", function(num) {
      num = num.toString();
      return "(" + num + ") ";
    });

1 个答案:

答案 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}}