Firebasepipe理员SDK – DELETE响应不正确

我是新来的JavaScript(但不是新的编程)。

我正在使用NodeJs中的Firebase ADMIN SDK创build一个REST API。 如果资源存在,我能够成功执行DELETE请求。 但如果不存在(或者ID不正确),POSTMAN的响应仍然是成功的。

我想这个callback函数是不正确的。 当我实现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"}); }); }); 

经过一段时间的思考,我做了。 状态码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"}); }); });