0

在我的app.js我需要 Express-Handlebars 模块并激活我的viewHelper模块

const express = require('express');
const exphbs = require('express-handlebars');

const handlebars = require('./server/viewHelper')(exphbs);

这个视图助手注册了所有的助手函数

module.exports = function(exphbs){

  return exphbs.create({
      defaultLayout: 'index',
      extname: 'hbs',
      helpers: {
         test: require('./viewHelpers/test')(num),
         foo: require('./viewHelpers/foo'),
         bar: require('./viewHelpers/bar')
      }
  });

};

我的测试函数执行这段代码

module.exports = function (num) {
    return num;
}

所以写的时候

{{test 3}}

在我的车把文件中,如何将此号码传递给服务器?因为变量num显然是未定义的。

4

1 回答 1

0

无需将变量传递num给您的助手,通过这样做,测试函数(测试助手内部)将使用undefined参数调用,并将返回undefined,然后您将获得属性undefinedtest,这是不正确的,因为test属性应该是功能:

helpers: {
    test: require('./viewHelpers/test')
}

相当于:

helpers: {
    test: function (num) {
        return num;
    }
}

并且{{test 3}}等价于test(3);

于 2018-01-16T15:55:54.790 回答