首页 > 解决方案 > NodeJS rest api在使用参数时发送状态404怎么办?

问题描述

我在编写我的 api 时遇到了一个奇怪的问题。我正在使用 Nodejs 和 express。当我尝试使用带有参数的 GET 时会出现问题。


这是我的路线代码

    router.get('/addFriends/:email', (req, res, next) =>{
  const email = req.params.email;
  UserSchema.find({email: email}, { "friendsPending.emailSender": 1, _id : 0}, (err, data) =>{
    if(err){
      res.status(404).send(err);
    }else{
      res.status(200).send(data[0]);
    }
  });

});


这是我在 Postman 中的电话:/users/addFriends?email=a


运行此调用时,服务器返回 404 状态。即使我用另一个 get 电话测试它,它也发生了。
任何评论都适用,但是其他 POST 和 GET 调用正常工作(它们使用正文而不是参数)。谢谢

标签: node.jsrestexpress

解决方案


您混合了查询参数和 url 参数。要使您的示例正常工作,您需要使用/addFriends/my-email@gmail.com而不是/users/addFriends?email=a.

如果您需要通过查询参数(之后的所有内容?)发送电子邮件req.query,请在控制器中使用而不是req.params.email.


推荐阅读