1

私はJavascriptにはまったく新しいですが、プログラミングには新しいものではありません。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"}); 
     }); 
}); 
関連する問題