我想简单地从数据库中删除用户。使用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)
答案 0 :(得分:0)
在deleteUser
函数中,您不访问函数参数,但尝试使用this
运算符访问局部变量。此变量不存在,这就是链接中未定义的原因。
删除this
部分,以便将函数参数与url一起使用。
deleteUser(_id){
let headers = new Headers();
return this.http.delete(this.deleteurl+_id)
.map(res => res.json());
}
答案 1 :(得分:0)
500内部服务器错误。
User.findByIdAndRemove(req.params.id, function (err, user) {
if (err) {
return res.status(500).send("There was a penter code hereroblem deleting the user.");
}