【发布时间】:2017-12-25 13:15:24
【问题描述】:
我只想从数据库中删除一个用户。使用 MEAN Stack,mlab。
这是我的删除 API
router.delete('/delete/:id', function (req, res) {
User.findByIdAndRemove(req.params.id, function (err, user) {
if (err) {
return res.status(500).send("There was a penter code hereroblem deleting the user.");
} else {
res.status(200).send("User "+ user.username +" was deleted.");
res.json({ user: user });
}
});
});
这是我正在调用的服务
deleteUser(_id){
let headers = new Headers();
return this.http.delete(this.deleteurl+this._id)
.map(res => res.json());
}
我的 HTML 删除按钮
button type="button" class="btn btn-primary" (click)="deleteUser(_id)">Delete User</button>
这是我在 HTML 中的按钮上调用的 deleteuser 函数
deleteUser(_id){
this.authService.deleteUser('localhost:3000/users/delete'+'/'+_id).subscribe(data=> {
console.log(data,"data from db")
this.user();
},
err => {
console.error(err, "error" )
}
)};
目前,我将 id 作为文档的 id 编号,即硬编码 id 的值
这是我遇到的错误
DELETE http://localhost:3000/users/delete/undefined 500 (Internal Server Error)
【问题讨论】:
-
只需记录错误并检查您的服务器日志
-
您的
deleteUser方法应该使用this.deleteurl + _id(而不是this._id)。 -
我刚刚进行了这些更改,控制台结果仍然相同错误有点像这样 DELETE localhost:3000/users/delete/localhost:3000/users/delete/... 404 (Not Found)
-
为什么是localhost:3000 ???只使用 /users/delete 看看它是否有效
-
this.authService.deleteUser('/users/delete'+'/'+_id)
标签: node.js angular api express http-delete