Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

174
Vistas
use helper of handlebars-express in a view

I am using nodejs as a backend and the handlebars-express library

I have 3 files, my index.js, loginController.js and loginTemplate.handlebars

In my index.js I have declared handlebars like this

const handlebarsInstance = require('./src/services/handlebarsService');
var hbs = handlebarsInstance.handlebars;
const server = express();
    
server.engine('handlebars', hbs.engine);
server.set('view engine', 'handlebars');

In my loginController I have this

const handlebarsInstance = require('../services/handlebarsService');

      handlebarsInstance
  .getTemplate('loginController/loginTemplate', data)
  .then((loginCompiledTemplate) => {
    res.send(loginCompiledTemplate);
  });

My handlebars service:

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 };

But when in my view I try to call "ifCond" it doesn't recognize it, because it gives me this error

{{#if campos }}
{{#each camposManuales}}
{{#ifCond this.field_type == 1 }}
  a
{{/ifCond}}
{{/each}}
{{/if}}

The error:

UnhandledPromiseRejectionWarning: Error: Parse error on line 14:
           .field_type == 1 }}

How can i fix this? What is wrong? Thank u so much!! ^^

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda