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.

¿Cómo usar correctamente el router.get?

Estoy obteniendo datos de mongodb y mostrándolos en las rutas, pero una de las rutas no funciona, aquí está mi código:

rutas:

const express = require(‘express’);
const router = express.Router();
const data = require(‘../data’);
const gymData = data.gyms;

router.get(‘/’, async (req, res) => {
try {
let gymList = await gymData.getTopFive();
res.render(‘gymbars/gymlist’,{gyms:gymList})

} catch (e) {
  res.sendStatus(500);
}

});

router.get(‘/gymcreate’,async(req,res) => {

try{
res.render(‘gymbars/creategym’)
}
catch(e){
res.sendStatus(500);
}
});

module.exports = router;

index.js:

const gymRoutes = require(‘./gyms’);

const constructorMethod = (app) => {
app.use(‘/gyms’, gymRoutes);

app.use(‘*’, (req, res) => {
res.status(404).json({ error: ‘No encontrado’ });
});
};

module.exports = constructorMethod;

creategym.handlebars:

hola

La siguiente ruta solo muestra un error interno del servidor, mientras que la otra ruta funciona correctamente:

http://localhost:3000/gyms/gymcreate

No estoy seguro de qué estoy haciendo mal.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Basándose en el código proporcionado, parece ser que hay un problema con el bloque try-catch en la ruta “gymcreate”.

    Intente quitar el bloque try-catch y renderizar directamente la vista:

    router.get('/gymcreate', async(req,res) => {
      res.render('gymbars/creategym');
    });
    

    Si esto resuelve el problema, entonces podría haber un error que se está capturando en el bloque try-catch que necesita ser abordado. También puede intentar registrar el mensaje de error en la consola para ver qué está causando el error interno del servidor:

    router.get('/gymcreate', async(req,res) => {
      try {
        res.render('gymbars/creategym');
      } catch(e) {
        console.log(e);
        res.sendStatus(500);
      }
    });
    

    Asegúrese de que el archivo “creategym.handlebars” exista en el directorio “views/gymbars/”, y que esté escrito correctamente.

Comments are closed.