最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

DELETE API不起作用

IT培训 admin 9浏览 0评论

DELETE API不起作用

我想简单地从数据库中删除一个用户。使用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运算符访问局部变量。此变量不存在,这就是您在链接中获得未定义的原因。

删除this部分,以便函数参数与url一起使用。

deleteUser(_id){
    let headers = new Headers();
    return this.http.delete(this.deleteurl+_id)
    .map(res => res.json());
}

DELETE API不起作用

我想简单地从数据库中删除一个用户。使用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运算符访问局部变量。此变量不存在,这就是您在链接中获得未定义的原因。

删除this部分,以便函数参数与url一起使用。

deleteUser(_id){
    let headers = new Headers();
    return this.http.delete(this.deleteurl+_id)
    .map(res => res.json());
}
11136

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论