Estoy probando mi función getIndividualTwitt en Postman y no estoy definido cuando consola.log el req.params.id. Esto está ocurriendo exclusivamente en esta ruta. Apreciaría cualquier ayuda que usted podría apare.
índice.js
app.use(express.json()) app.use('/profiles',require('../Server/routes/profile')) app.use('/users',require('../Server/routes/users')) app.use('/dashboard',require('../Server/routes/dashboard'))rutas/perfiles.js
router.post('/:name',authorization,controller.createProfile) router.get('/:id',authorization,controller.getProfile) router.delete('/:id',authorization,controller.deleteProfile) router.get('/twitt/:id',controller.getIndividualTwitt)controladores/perfiles.js
getIndividualTwitt:async(res,req)=>{ try { console.log('hello') console.log(req.params.id) //prints undefined //const twitt=await connectTwitt.getTwitt(req.params.id) //res.send(twitt) } catch (error) { console.log(error) } }Solicitud de cartero:
GET http://localhost:3002/profiles/twitt/8 El problema está en el orden de los puntos finales definidos. Express ejecuta el código de arriba a abajo, de modo que cuando llamas a /profiles/twitt/8 endpoint. encontrará una coincidencia en la siguiente configuración del enrutador:
router.get('/:id',authorization,controller.getProfile)Invierta el orden de los puntos finales definidos, así:
router.get('/twitt/:id',controller.getIndividualTwitt) router.get('/:id',authorization,controller.getProfile)reemplace el orden de los argumentos por solicitud y respuesta, la req viene primero:
getIndividualTwitt:async(req,res)=>{ //...