GOOGLE ADS

sábado, 16 de abril de 2022

Error: ENOENT: no existe tal archivo o directorio en express-handlebars

Estoy usando express-handlebarspara cargar contenido dinámico en NodeJS

en el interiorapp.js

const express = require("express");
const bodyParser = require("body-parser");
const path = require("path");
const pp = require("./util/path.js");
const adminRoutes = require("./routes/admin");
const shopRoutes = require("./routes/shop");
const expressHbs = require("express-handlebars");
const app = express();
app.engine("hbs",expressHbs());
app.set("view engine", "hbs");
app.set("views", "views");
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, "public")));
app.use("/admin", adminRoutes.routes);
app.use(shopRoutes);
app.use((req, res, next) => {
res.status(404).render("404", { pageTitle: "Page Not Found" });
});
app.listen(3001, "localhost", () => console.log("Listening on 3001 PORT"));

Cuando expressHbs()la función no tiene parámetro, muestra el siguiente error

Error: ENOENT: no existe tal archivo o directorio, abra 'C:\dev\nodejs\maximi_course\views\layouts\main.handlebars'

Y cuando le paso un objeto de opción:

app.engine(
"hbs",
expressHbs({
extname: "hbs",
layoutsDir: path.join(__dirname, "views")
})
);

Muestra:

Error: ENOENT: no existe tal archivo o directorio, abra 'C:\dev\nodejs\maximi_course\views\main.hbs'

Busqué una solución pero no obtuve ningún resultado. En realidad, estoy siguiendo un tutorial y he hecho lo mismo que hizo el maestro, pero obtuve un error.

Lo último que he intentado es agregar la propiedad defaultLayout y funciona y carga el valor predeterminado, pero cuando cambio la URL a otra página, siempre carga la misma página que configuré como predeterminada

Aquí está la carpeta del proyecto y todo su contenido.

Directorio


Solución del problema

Tuve el mismo problema y lo solucioné usando el siguiente método:

app.engine(
"hbs",
expressHbs({
extname: "hbs",
defaultLayout: false,
layoutsDir: "views/layouts/"
})
);

No hay comentarios:

Publicar un comentario

Regla de Firestore para acceder a la generación de subcolección Permisos faltantes o insuficientes

Tengo problemas con las reglas de Firestore para permitir el acceso a algunos recursos en una subcolección. Tengo algunos requests document...