gpt4 book ai didi

node.js - Node/Express Handlebars - 在哪里定义自定义助手

转载 作者:搜寻专家 更新时间:2023-11-01 00:39:48 25 4
gpt4 key购买 nike

我正在开发一个 node/express/handlebars 应用程序,我刚刚发现自定义助手,但我不知道在哪里定义它们。

我尝试在 <script> 中的实际 View 模板 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 应用中的什么地方包含这个代码呢?

如果有人能阐明这个问题,我们将不胜感激。

编辑:我不确定这是否是正确的方法,但您可以在设置 View 引擎后将其放入您的 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);
}
});

如果由于某种原因这不正确或有问题,请告诉我。

最佳答案

我个人在根目录中创建了一个 helpers 文件夹,并将我所有的帮助方法都放在那里。然后,您可以在 app.js 中要求并告诉 hbs 引擎您希望将该文件用于助手。

// in app.js

const hbsHelpers = require('./helpers/handlebars');
...
app.engine('handlebars', exphbs({
helpers: hbsHelpers
});

关于node.js - Node/Express Handlebars - 在哪里定义自定义助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38661295/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com