我试图通过传递属性的id来删除特定属性,但是,delete删除数据库中的第一个属性而不是特定属性。
Server.js
app.delete('/deleteProperty/:id', function(req,res) {
Property.findOneAndRemove(req.params.propertyId,req.body, function(err,data) {
if(!err) {
console.log("Deleted");
}
});
});
api.service.ts
deleteProperty(id:number) {
return this.http.delete('http://localhost:3000/deleteProperty/'+id)
.do(data => console.log('All: ' + JSON.stringify(data)))
.catch(this.handleError);
}
propertyDetail.component.ts
deleteProperty(id)
{
this.apiService.deleteProperty(id)
.subscribe( res => {
// this._router.navigate(['/properties']);
}, (err) => {
console.log(err);
}
)
}
html中的按钮
<a style="float:right" color="warn" mat-raised-button (click)="deleteProperty(property.propertyId)">Delete</a>
答案 0 :(得分:2)
当您使用findOneAndRemove
时,您需要像这样包装第一个参数:
Property.findOneAndRemove({_id: req.params.propertyId}, req.body, function(err,data)
{
if(!err){
console.log("Deleted");
}
});
如果您尝试方法findByIdAndRemove
,那么您可以像调用它一样调用它:
Property.findByIdAndRemove(req.params.propertyId,req.body, function(err,data)
{
if(!err){
console.log("Deleted");
}
});
您可以在documentation找到更多信息。