如何注册自定义Handlebars助手?

Ben*_*son 8 javascript node.js express handlebars.js

经过长时间的搜索,我似乎无法找到关于在哪里放置我的自定义车把助手的大量信息.我把它们放在<script>我网页的.hbs文件中吗?我把它们放在app.js中吗?我把它们放在页面的路由器中吗?

这是我想要注册的帮手:

Handlebars.registerHelper("last", function(array) {
    return array[array.length - 1];
});
Run Code Online (Sandbox Code Playgroud)

我假设一旦我将代码放在某个地方我可以在任何页面上使用它{{last foo}},对吧?

Tit*_*ula 5

例如,您可以看到下面的代码:

var express = require('express');

var app = express();

var expressHbs =  require('express-handlebars');

app.engine('.hbs', expressHbs({ defaultLayout: 'layout', extname: '.hbs'}).engine)
app.set('view engine', '.hbs');

var hbs = expressHbs.create({});

// register new function
hbs.handlebars.registerHelper('increasePrice', function(price) {
  price+=10;
  return price;
})

app.get('/', (req, res) => {
  res.render('home', {
    layout: false,
    totalPrice: 300,
  });
})

app.listen(3000, () => {
  console.log('Server is up');
});
Run Code Online (Sandbox Code Playgroud)

上面的代码只是一个例子。

您可以在此网站上查看示例:https://codesandbox.io/s/elegant-fog-1n61o

我希望它能帮助你。


IT *_*ogs 0

如果您想使用express-handlebars并注册模板助手,.hbs您可以按照我的回答。

如何使车把助手全局化(在expressjs中)