2017-12-18 4 views
0

Ich versuche DELETE zu meiner API hinzuzufügen, bekomme aber eine 404: Nicht gefunden für alles, was ich versuche. Alle GET- und POST-Methoden funktionieren. Dies verwendet das Modell "Points", das Punkte mit jeweils einer eindeutigen ID enthält. Ich versuche einen Anruf hinzuzufügen, um einen Punkt anhand seiner ID zu löschen.Express API DELETE

Aktion

export function deletePointById(identifier) { 
    return dispatch => { 
     return axios.delete('/api/points/' + identifier) 
    } 
} 

Weg für DELETE (funktioniert nicht)

router.delete('/:identifier', (req, res) => { 
    Points.remove({ 
     id: req.params.identifier 
    }), function (err, user) { 
     if (err) { 
     return res.send(err); 
     } 

     res.json({ message: 'Deleted' }); 
    }; 
}); 

Hier ist eine bestehende GET, die

Aktion

export function getPointsBySession(session){ 
    return dispatch => { 
     return axios.get('/api/points/session/' + session) 
    } 
} 

Strecke funktioniert gut für GET

router.get('/session/:session', (req, res) => { 
    Points.query({ 
     select: ['id', 'number', 'quadrant', 'level', 'title', 'category'], 
     where: {sessionId: req.params.session} 
    }).fetchAll().then(point => { 
     res.json({ point }); 
    }) 
}); 

Antwort

0

Es sieht aus wie könnte das Problem sein, dass Theres eine zusätzliche Klammer und Semikolon (};) im Code:

router.delete('/:identifier', (req, res) => { 
    Points.remove({ 
     id: req.params.identifier 
    }), function (err, user) { 
     if (err) { 
     return res.send(err); 
     } 

     res.json({ message: 'Deleted' }); 
    }; // <-- HERE 
}); 

Sie müssen auch das Semikolon in der Zeile oberhalb der einen entferne ich hinzugefügt der Kommentar zu.

Es wird wie folgt aussehen:

router.delete('/:identifier', (req, res) => { 
    Points.remove({ 
     id: req.params.identifier 
    }), function (err, user) { 
     if (err) { 
     return res.send(err); 
     } 

     res.json({ message: 'Deleted' }) 
});