0

私のノードjsアプリケーションには、テンプレートファイルで使用するためにハンドルバーのif-elseロジックを登録しようとしている以下のコードがあります。ただし、「TypeError: hbs.registerHelper は関数ではありません」というエラーがスローされます。誰かが私が犯している間違いを指摘し、if - elseif -else ロジックを登録して等値 (または比較) チェックを実行し、テンプレートで意思決定ロジックを構築する方法を提案できますか?

package.json の Express-handlebars のバージョンは 3.0.0 です

var exp = require('express');
var pth = require('path');
var fcon = require('serve-favicon');
var logger = require('morgan');
var cp = require('cookie-parser');
var bp = require('body-parser');
var exphbs = require('express-handlebars');

var index = require('./routes/index');

var app = express();

exphbs.registerHelper("if", function(conditional, options) {
  if (options.hash.desired === options.hash.type) {
    options.fn(this);
  } else {
    options.inverse(this);
  }
});

// view engine setup
app.engine('hbs', exphbs({extname: 'hbs', defaultLayout: 'layout', layoutsDir: __dirname + '/views/mylayouts/'}));
app.set('views', pth.join(__dirname, 'views'));
app.set('view engine', 'hbs');
4

1 に答える 1