Estoy usando nodejs como backend y la biblioteca handlebars-express
Tengo 3 archivos, mi index.js, loginController.js y loginTemplate.handlebars
En mi index.js he declarado manillares como este
const handlebarsInstance = require('./src/services/handlebarsService'); var hbs = handlebarsInstance.handlebars; const server = express(); server.engine('handlebars', hbs.engine); server.set('view engine', 'handlebars');En mi loginController tengo esto
const handlebarsInstance = require('../services/handlebarsService'); handlebarsInstance .getTemplate('loginController/loginTemplate', data) .then((loginCompiledTemplate) => { res.send(loginCompiledTemplate); });Mi servicio de manillares:
const handlebars = require('express-handlebars').create({ helpers: { ifCond: function (v1, operator, v2, options) { switch (operator) { case '==': return v1 == v2 ? true : false; case '===': return v1 === v2 ? true : false; case '!=': return v1 != v2 ? true : false; case '!==': return v1 !== v2 ? true : false; case '<': return v1 < v2 ? true : false; case '<=': return v1 <= v2 ? true : false; case '>': return v1 > v2 ? true : false; case '>=': return v1 >= v2 ? true : false; case '&&': return v1 && v2 ? true : false; case '||': return v1 || v2 ? true : false; default: return false; } }, }, layoutsDir: __dirname + '/src/views', }); const getTemplate = async (path, data) => { const template = await handlebars .getTemplate(`./src/views/${path}.handlebars`) .catch((err) => { console.log(err); }); return template(data); }; module.exports = { getTemplate, handlebars };Pero cuando en mi vista trato de llamar a "ifCond" no lo reconoce, porque me da este error
{{#if campos }} {{#each camposManuales}} {{#ifCond this.field_type == 1 }} a {{/ifCond}} {{/each}} {{/if}}El error:
UnhandledPromiseRejectionWarning: Error: Parse error on line 14: .field_type == 1 }}¿Cómo puedo arreglar esto? ¿Qué está mal? ¡¡Muchas gracias!! ^^