Express.js API删除路由不起作用

时间:2017-10-23 03:26:16

标签: node.js rest express routes http-delete

我试图在快递中创建一个API,并且我在/posts/:postId上遇到删除路由的错误每当我尝试使用邮递员向该路由发出删除请求时,页面只是无限加载,请求被中止。

以下是我的/posts/:postId路线的样子:

router.route("/:postId")
.get(controllers.getSinglePost)
.delete(function(req, res){ res.send('work'); });

以下是controllers.getSinglePost函数的样子:

`

exports.getSinglePost = function(req, res){
  db.Post.findById(req.params.postId)
  .populate('comments')
  .then(post=>{
    if(!post) return res.status(404).json({message: "Post not found"});
    res.status(200).json(post);
  }).catch(err=>{
    res.status(500).json(err);
  });
}

`

我真的不知道自己做错了什么。

3 个答案:

答案 0 :(得分:0)

exports.getSinglePost = function(req, res){
      db.Post.findById(req.params.postId)
      .populate('comments')
      .then(post=>{
        if(!post) return res.status(404).json({message: "Post not found"});
        res.status(200).json(post);
      }).catch(err=>{
        res.status(500).json(err);
      });
    }

答案 1 :(得分:0)

我不了解您的方法,但您可以更改代码以完成您的工作。我使用sequelize,可能不存在populate的归属。这是我的代码,它是成功的。

getSinglePost = function(req, res){
  db.models.City.findById(req.params.postId)
  .then(post=>{
    if(!post) return res.status(404).json({message: "Post not found"});
    res.status(200).json(post);
  }).catch(err=>{
    res.status(500).json(err);
  });
}

app.route('/:postId')
  .get(function(req,res){
    getSinglePost(req,res)
  })
  .delete(function (req, res) {
    res.send('Update1 the book')
  })

答案 2 :(得分:0)

好的,所以看起来由于某种原因我使用的名为formidable的npm包导致了这个问题。一旦我从应用程序中删除它,它就会重新开始工作。很抱歉浪费你们的时间。