Requête get qui renvoie rien

Bonjour, j’ai un code avec une requête get qui ne renvoie rien je comprends pas pourquoi

const express = require('express')
const app = express()
const morgan = require ('morgan')

const member = [
    {
        id: 1,
        name:'chloy'
    },
    {
        id: 2,
        name:'tania'
    },
    {
        id: 3,
        name:'yehouda'
    }
]

app.use(morgan('dev'))

app.get('member/:id',(req , res) => {
    res.send(member[(req.params.id)-1])
})

app.listen(8080,()=>console.log('started on port 8080'))

et sur mon port 8080 Cannot GET /member/1
merci

C’est une erreur toute simple je pense. Il faut que tu écrives ça :

app.get('/member/:id',(req , res) => {
    res.send(member[(req.params.id)-1])
})

Il te manque le / au début du path :)

1 J'aime

Comme dit @camilleroux, corrige ta route, puis fais un console.log dans ton controller pour voir si cette route est bien sollicitée.
Si console.log affiche un message alors le controller est bien appelé. Alors c’est réglé

Sinon le problème se situe dans l’exploitation que tu fais sur member

Question :
le param id est censé etre l’index ou l’ID du membre dans le tableau ?

Je vais partir du principe que :id est l’ID du membre.

Au lieu de

res.send(member[(req.params.id)-1])

essaie ceci :

const memberFound = member.find(m => m.id === req.params.id);
if (memberFound){
    res.status(200).json(member);
}
else {
    res.status(400).send({ error : 'Unknown member ID' })
}
2 J'aimes