我正在开发一个node / express / handlebars应用程序,我刚刚发现了自定义帮助程序,但我不知道在哪里定义它们。
我尝试在<script>
标记的实际视图模板hbs文件中添加一些,如下所示:
<script type="text/javascript">
Handlebars.registerHelper('if', function(conditional, options) {
console.log("IN HANDLEBARS HELPER");
if (conditional) {
return options.fn(this);
} else {
return options.inverse(this);
}
});
</script>
但是我得到了一个Uncaught ReferenceError:没有定义Handlebars。
我也发现了这个JSFiddle,但我的应用中没有任何类似代码的内容。我还看过十几个教程,但他们几乎都说官方文档完全相同。
那么我在哪里准确地将这些代码包含在node / express app中呢?
如果有人能对这个问题有所了解,我们将不胜感激。
修改 我不确定这是否正确,但您可以在设置视图引擎后将其放入app.js中:
var hbs = require('hbs');
hbs.registerHelper('test', function(conditional, options) {
//do something
if (conditional) {
return options.fn(this);
} else {
return options.inverse(this);
}
});
如果由于某种原因这不正确或有问题,请告诉我。
答案 0 :(得分:1)
我个人在根目录中创建了一个helpers文件夹,并将所有帮助方法放在那里。然后,您可以进入app.js并告诉hbs引擎您要将该文件用于帮助程序。
// in app.js
const hbsHelpers = require('./helpers/handlebars');
...
app.engine('handlebars', exphbs({
helpers: hbsHelpers
});
答案 1 :(得分:0)
这个解决方案适合我。
inside app.js
below
app.set('view engine', 'hbs');
//example get local date
var hbs = require('hbs');
hbs.registerHelper('dateLocal', function(fecha) {
return new Date(fecha).toLocaleDateString();
});