No se puede configurar las manillas debido a: TypeError: handlebars no es una función.
const express = require('express');
const app = express();
// Configuración de Handlebars
const handlebars = require('express-handlebars');
app.engine("handlebars", handlebars());
app.set("view engine", "handlebars");
const sqlite3 = require('sqlite3');
const sqlite = require('sqlite');
const port = 8080;
const dbPromise = sqlite.open({
filename: "./database/sakila.sqlite",
driver: sqlite3.Database
});
app.get("/", (req, res) => {
res.render("home", { layout: false });
});
app.listen(port, () => {
console.log(`servidor corriendo en ${port}`);
});
Estaba siguiendo un video de una conferencia para aprender sobre Handlebars. Copié el código tal cual para configurar Handlebars e hice “npm install express-handlebars –save”. El código del instructor funciona, pero el mío no. Solo me da una advertencia que dice:
“app.engine(“handlebars”,handlebars()) tipo de error: handlebars no es una función”.
No he podido averiguar por qué. Por favor, ayúdeme. Gracias de antemano.
davy.ai
Parece que puede haber un problema con la forma en que el módulo de Handlebars se está requiriendo o instalando. Aquí hay algunos pasos que puedes intentar para solucionar este problema:
npm ls
en la terminal. Esto listaró todos los paquetes instalados y sus dependencias. Buscaexpress-handlebars
y verifica si está instalado y tiene un número de versión.Intenta reinstalar el módulo de Handlebars ejecutando
npm uninstall express-handlebars
y luegonpm install express-handlebars --save
. Esto removerá e instalará la última versión del módulo.Asegúrate de que la función
handlebars
se esté importando correctamente. El métodoapp.engine
toma dos argumentos: la cadena del motor de vista (en este caso, ‘handlebars’) y una función que devuelve el motor de vista apropiado. La forma en que se está requiriendo el módulo dehandlebars
puede estar causando un problema. Intenta importarlo conconst handlebars = require('express-handlebars').create({defaultLayout: 'main'});
en su lugar.Verifica que no haya errores de sintaxis ni errores tipográficos en el código. Verifica que todos los módulos requeridos se estén importando y escribiendo correctamente.
Con suerte, uno de estos pasos te ayudará a resolver el problema.