У меня проблемы с регистрацией специального помощника в руле.
Я пробовал все, что мог найти, но ничего не работает.
вот что у меня в app.js
const express= require('express');
const exphbs = require('express-handlebars');
var socket = require('socket.io')
const app=express();
const querystring = require('querystring');
var hbs = exphbs.create({
extname: '.hbs',
defaultLayout: 'default',
layoutsDir: './lib/templates/layouts',
partialsDir: './lib/templates/partials',
helpers: require("./helpers/handlebars.js").helpers
});
app.engine('hbs', hbs.engine);
//Handlebars Middleware
app.engine('handlebars', exphbs({defaultLayout: 'main'}));
app.set('view engine', 'handlebars');
app.use(express.static('public'));
и у меня в helpers / handlebars.js этот код:
var register = function (Handlebars) {
var helpers = {
formatCurrency: function (currency) {
return currency.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
},
format_date: function (date, format) {
return moment(date).format(format);
}
};
if (Handlebars && typeof Handlebars.registerHelper === "function") {
for (var prop in helpers) {
Handlebars.registerHelper(prop, helpers[prop]);
}
} else {
return helpers;
}
};
module.exports.register = register;
module.exports.helpers = register(null);
(пример, который я нашел в Интернете)
Но когда я подхожу к своему виду и пытаюсь вызвать этого помощника:
{{formatCurrency settings.Ngames}}
Я получаю эту ошибку:
Error: Missing helper: "formatCurrency"
Я пробовал также использовать в Handlebars.register в app.js, но он не распознает Handlebars.
Что я делаю не так? Как я могу зарегистрировать помощников?
Спасибо!