首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >req.params.id没有删除mongoose模型的deleteOne()函数,该如何修复?

req.params.id没有删除mongoose模型的deleteOne()函数,该如何修复?
EN

Stack Overflow用户
提问于 2019-02-18 11:25:42
回答 1查看 8.3K关注 0票数 5

首先要提到的是,我对Node.Js和MongoDB完全是个新手。

我正在用Node.Js和MongoDB编写一个后端应用程序接口,它将处理来自前端的GET,POST,DELETE请求,非常简单的东西。

我在使用删除功能时卡住了。

这是我的posts.service.ts文件,其中包含这个deletePost()函数,它将postId发送到后端app.js文件。

`

deletePost(postId: string) {
    this.http.delete('http://localhost:3000/api/posts/' + postId)
    .subscribe(() => {
      console.log(postId);
      console.log('Deleted');
    });
  }

`

我添加了这个console.log(postId),以检查它是否包含实际的postId,并发现它确实包含。我还通过检查mongo shell将其与MongoDB中的真实Id进行了匹配。

下面是应该执行实际任务的后端app.js文件中的删除()函数。

`

app.delete("/api/posts/:id", (req, res, next) => {
  Post.deleteOne({ _id: req.params.id }).then(result => {
    console.log(result);
    res.status(200).json({message: "Post deleted"});
  });
});

`

console.log(result)行应该在终端中打印一些结果,但它没有,所以它不会删除数据库中的集合。

我在一台Ubuntu 16.04 LTS pc上运行这个程序。

一些线索将会有很大的帮助。非常感谢您的善意努力。

EN

回答 1

Stack Overflow用户

发布于 2019-06-24 09:09:09

我也面临着完全相同的问题,我解决了返回deleteOne promise对象,然后使用promise的.then属性的问题。如下所示:

Model.js

...
bicicleSchema.statics.deleteById= function(id, cb){
    return this.deleteOne({code: id}, cb);
};
...
module.exports = mongoose.model('Bicicle', bicicleSchema);

Service.js

var Bicicle = require('../../../model/bicicle');
...
const id = req.params.id;
Bicicle.deleteById(id).then(()=>{
    //your code
});
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54740078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档