1

나는 요정이 새롭다 (그러나 프로그래밍에 익숙하지 않다).Firebase admin SDK - DELETE 응답이 올바르지 않습니다.

NodeJs에서 Firebase ADMIN SDK를 사용하여 REST API를 만들고 있습니다. 리소스가있는 경우 DELETE 요청을 성공적으로 수행 할 수 있습니다. 그러나 거기에 없으면 (또는 ID가 올바르지 않은 경우), POSTMAN의 응답은 여전히 ​​성공합니다.

콜백 함수가 적절하지 않다고 가정합니다. 그리고 나는 GET/: id와 PUT/: id를 구현할 때 같은 문제를 볼 수있다. 도와주세요.

// DELETE /api/billingPlans/:id 
// Delete a billing plan 
routes.delete('/:id', (req, res) => { 
    var ref = admin.database().ref(firebaseNode); 
    //Have also tried snapshot.exists() but similar problem occurs 
    return ref.child(req.params.id).once('value', function(snapshot) { 
    snapshot.ref.remove(function(error){ 
     if(!error) 
     res.status(200).json({"result" : "DELETE Success"}); 
     else res.status(204).json({"error" : "Not found"}); 
     }); 
}); 

답변

-1

나는 그것을 잠시 숙고 한 후에했습니다. 상태 코드 204는 POSTMAN에서 올바른 형식의 본문을 되돌려 보내지 않습니다. 이유를 모르겠다. 코드를 단순화하면 코드는 다음과 같습니다.

// DELETE /api/billingPlans/:id 
// Delete a billing plan 
routes.delete('/:id', (req, res) => { 
    var ref = Common.admin.database().ref(firebaseRootNode); 
    ref.child(req.params.id).once('value', function(snapshot) { 
     if(snapshot.exists()){ 
     snapshot.ref.remove(); 
     return res.status(200).json({"result" : "DELETE Success"}); 
     } 
     //204 does not send back a body 
     return res.status(200).json({"error" : "Not found"}); 
     }); 
});