在我的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
显然是未定义的。
答案 0 :(得分:0)
没有必要将变量num
传递给您的帮助程序,通过这样做,将使用undefined
参数调用测试函数(内部测试助手),并返回undefined
,那么你将undefined
作为test
属性的值,它不正确,因为test
属性应该是一个函数:
helpers: {
test: require('./viewHelpers/test')
}
相当于:
helpers: {
test: function (num) {
return num;
}
}
而{{test 3}}
相当于test(3);