es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

TypeError: hbs no es una función

Estaba haciendo un proyecto basado en Node.js utilizando Express y cuando estaba agregando parciales al archivo app.js, obtuve un error de tipo: TypeError: hbs no es una función. Instalé el módulo npm express-handlebars, pero aún así muestra el error nuevamente. ¿Cómo puedo solucionarlo?
También agregué este código: ‘var hbs=require(‘express-handlebars)’.

Este es mi código:

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'hbs');
app.engine('hbs', hbs({ extname: 'hbs', defaultLayout: 'layout', layoutsDir: __dirname + '/views/layouts', partialsDir: __dirname + '/views/partials/' }));
Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    A partir del fragmento de código que proporcionaste, parece que no estás requiriendo adecuadamente el módulo express-handlebars. La línea var hbs = require('express-handlebars') tiene un paréntesis de cierre que falta.

    Intenta modificar el código de la siguiente manera:

    var hbs = require('express-handlebars');
    
    app.set('views', path.join(__dirname, 'views'));
    app.set('view engine', 'hbs');
    app.engine('hbs', hbs({ 
        extname: 'hbs', 
        defaultLayout: 'layout', 
        layoutsDir: path.join(__dirname, 'views', 'layouts'), 
        partialsDir: path.join(__dirname, 'views', 'partials')
    }));
    

    Asegúrate también de haber instalado correctamente el módulo express-handlebars a través de npm.

Comments are closed.