Node.js 比较把手的块辅助对象
我在代码中使用block helper比较值,但问题是每次运行此代码时,我都会在网页视图中得到此错误消息 我的app.js文件Node.js 比较把手的块辅助对象,node.js,handlebars.js,Node.js,Handlebars.js,我在代码中使用block helper比较值,但问题是每次运行此代码时,我都会在网页视图中得到此错误消息 我的app.js文件 {{#compare pageCount ">" 1 }} <ul class="pagination"></ul> {{#compare currentPage ">" 1 }} <li><a href="/?page=1"> «</a><
{{#compare pageCount ">" 1 }}
<ul class="pagination"></ul>
{{#compare currentPage ">" 1 }}
<li><a href="/?page=1"> «</a></li>
{{/compare}}
{{/compare}}
const exphbs = require('express-handlebars');
const hbs = exphbs.create({
// Specify helpers which are only registered on this instance.
helpers: {
foo: function () { return 'FOO!'; },
extname: ".hbs",
compare: function(lvalue, rvalue, options) {
if (arguments.length < 3)
throw new Error("Handlerbars Helper 'compare' needs 2 parameters");
var operator = options.hash.operator || "==";
var operators = {
'==': function(l,r) { return l == r; },
'===': function(l,r) { return l === r; },
'!=': function(l,r) { return l != r; },
'<': function(l,r) { return l < r; },
'>': function(l,r) { return l > r; },
'<=': function(l,r) { return l <= r; },
'>=': function(l,r) { return l >= r; },
'typeof': function(l,r) { return typeof l == r; }
}
if (!operators[operator])
throw new Error("Handlerbars Helper 'compare' doesn't know the operator "+operator);
var result = operators[operator](lvalue,rvalue);
if( result ) {
return options.fn(this);
} else {
return options.inverse(this);
}
}
}
});
//For Handlebars
app.set('views', './app/views')
app.engine('.hbs', exphbs({extname: '.hbs'}));
app.set('view engine', '.hbs');
const exphbs=require('express-handlebar');
const hbs=exphbs.create({
//指定仅在此实例上注册的帮助程序。
助手:{
foo:function(){return'foo!';},
extname:“.hbs”,
比较:函数(左值、右值、选项){
如果(参数长度<3)
抛出新错误(“Handlerbars助手“比较”需要2个参数”);
var operator=options.hash.operator | |“==”;
var运算符={
“==”:函数(l,r){返回l==r;},
“==”:函数(l,r){返回l==r;},
“!=”:函数(l,r){返回l!=r;},
'':函数(l,r){返回l>r;},
'=':函数(l,r){返回l>=r;},
'typeof':函数(l,r){返回typeof l==r;}
}
如果(!运算符[运算符])
抛出新错误(“Handlerbars助手‘比较’不知道运算符”+运算符);
var结果=运算符[运算符](左值,右值);
如果(结果){
返回选项。fn(本);
}否则{
返回选项。反向(此);
}
}
}
});
//车把
应用程序集('视图','./应用程序/视图')
app.engine('.hbs',exphbs({extname:'.hbs'}));
app.set('查看引擎','.hbs');
哪里错了?您在
app.js
文件中有一个小错误
const exphbs = require('express-handlebars');
const hbs = exphbs.create({
//...
});
//For Handlebars
app.set('views', './app/views');
app.engine('.hbs', hbs.engine); // <===== Use `hbs.engine`
app.set('view engine', '.hbs');
const exphbs=require('express-handlebar');
const hbs=exphbs.create({
//...
});
//车把
应用程序集('视图','./应用程序/视图');
附件发动机('hbs',hbs发动机)//
const exphbs = require('express-handlebars');
const hbs = exphbs.create({
// Specify helpers which are only registered on this instance.
helpers: {
foo: function () { return 'FOO!'; },
extname: ".hbs",
compare: function(lvalue, rvalue, options) {
if (arguments.length < 3)
throw new Error("Handlerbars Helper 'compare' needs 2 parameters");
var operator = options.hash.operator || "==";
var operators = {
'==': function(l,r) { return l == r; },
'===': function(l,r) { return l === r; },
'!=': function(l,r) { return l != r; },
'<': function(l,r) { return l < r; },
'>': function(l,r) { return l > r; },
'<=': function(l,r) { return l <= r; },
'>=': function(l,r) { return l >= r; },
'typeof': function(l,r) { return typeof l == r; }
}
if (!operators[operator])
throw new Error("Handlerbars Helper 'compare' doesn't know the operator "+operator);
var result = operators[operator](lvalue,rvalue);
if( result ) {
return options.fn(this);
} else {
return options.inverse(this);
}
}
}
});
//For Handlebars
app.set('views', './app/views')
app.engine('.hbs', exphbs({extname: '.hbs'}));
app.set('view engine', '.hbs');
const exphbs = require('express-handlebars');
const hbs = exphbs.create({
//...
});
//For Handlebars
app.set('views', './app/views');
app.engine('.hbs', hbs.engine); // <===== Use `hbs.engine`
app.set('view engine', '.hbs');