[英]Firebase admin SDK - DELETE response not correct
我是Java语言的新手(但不是编程新手)。
我正在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"});
});
});
我考虑了一会儿之后就做到了。 状态代码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"});
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.