Recibo este error tanto en el navegador como en la terminal al intentar acceder a mi entorno de desarrollo:
Error: no se pudo buscar la vista "páginas/índice" en el directorio de vistas "/home/juan/dev/my-project/lib/views" en Function.render (/home/juan/dev/my-project/node_modules/express/ lib/application.js:583:17) en ServerResponse.render (/home/juan/dev/my-project/node_modules/express/lib/response.js:1017:7) en file:///home/juan/ dev/my-project/lib/index.js:15:31 en Layer.handle [como handle_request] (/home/juan/dev/my-project/node_modules/express/lib/router/layer.js:95:5 ) en el siguiente (/home/juan/dev/my-project/node_modules/express/lib/router/route.js:137:13) en Route.dispatch (/home/juan/dev/my-project/node_modules/express /lib/router/route.js:112:3) en Layer.handle [como handle_request] (/home/juan/dev/my-project/node_modules/express/lib/router/layer.js:95:5) en /home/juan/dev/my-project/node_modules/express/lib/router/index.js:281:22 en Function.process_params (/home/juan/dev/my-project/node_modules/express/lib/router/ index.js:341:12) en el siguiente (/home/juan/dev/my-project/node_modules/express/lib/router/index.js:2 75:10)
/home/juan/dev/my-project/lib/index.js :
import _ from 'lodash'; import express from 'express'; import path from 'path'; import {engine} from 'express-handlebars'; const PORT = process.env.PORT || 5000; const dirname = path.join(path.resolve(), 'lib'); let app = express(); app.engine('handlebars', engine({defaultlayout: 'index', extname: '.hbs'})); app.use(express.static(path.join(dirname, 'views'))); app.set('view engine', 'handlebars'); app.set('views', path.join(dirname, 'views')); app .get('/', (req, res) => res.render('pages/index')) .listen(PORT, () => console.log(`Listening on ${ PORT }`));¿Alguien sabe lo que está pasando? ¡Gracias de antemano! :)
Debe registrar el motor con el mismo nombre que usa para extname :
app.engine('.hbs', engine({ defaultlayout: 'index', extname: '.hbs' })); app.set('view engine', '.hbs');De lo contrario, obtendrá un comportamiento extraño.