如何在express-handlebars中注册Handlebars风格的运算符助手?
在express-handlebars中注册自定义
gt助手的方法 在express-handlebars里实现和原生Handlebars相同的自定义助手,主要有两种常用方式:
1. 初始化引擎时直接注册
在创建express-handlebars实例的阶段,通过helpers选项批量定义助手,适合一次性配置所有需要的助手:
const express = require('express'); const exphbs = require('express-handlebars'); const app = express(); // 创建实例并注册gt助手 const hbs = exphbs.create({ helpers: { gt: function(a, b) { const next = arguments[arguments.length - 1]; return (a > b) ? next.fn(this) : next.inverse(this); } // 其他自定义助手也可以在这里添加 } }); // 设置express的视图引擎 app.engine('handlebars', hbs.engine); app.set('view engine', 'handlebars');
2. 动态注册助手(适合后续补充)
如果已经完成了express-handlebars的初始化,之后可以通过实例的handlebars属性直接调用原生的registerHelper方法,和你原来的写法几乎一致:
// 假设hbs是已创建的express-handlebars实例 hbs.handlebars.registerHelper('gt', function(a, b) { const next = arguments[arguments.length - 1]; return (a > b) ? next.fn(this) : next.inverse(this); });
模板中使用方式
注册完成后,在Handlebars模板里的用法和原生完全相同:
{{#gt 10 5}} 10大于5 {{else}} 10不大于5 {{/gt}}
内容的提问来源于stack exchange,提问作者Connor Allsopp
相关产品推荐
相关产品推荐

