当前位置: 首页 > 知识库问答 >
问题:

邮递员。邮递请求暂停,不会处理。为什么会这样?

姜华翰
2023-03-14

这是我的密码--------

const express = require("express");
const router = express.Router();
const gravatar = require("gravatar");

// Load User model
const User = require("../../models/User");

// @route   GET api/users/test
// @desc    Tests users route
// @access  Public
router.get("/test", (req, res) => res.json({ msg: "Users Works" }));

// @route   GET api/users/register
// @desc    Register user
// @access  Public
router.post("/register", (req, res) => {
  User.findOne({ email: req.body.email }).then(user => {
    if (user) {
      return res.status(400).json({ email: "email already exists" });
    } else {
      const avatar = gravatar.url(req.body.email, {
        s: "200", // Size
        r: "pg", // Rating
        d: "mm" // Default
      });

      const newUser = new User({
        name: req.body.name,
        email: req.body.email,
        avatar,
        password: req.body.password
      });
    }
  });
});

module.exports = router;

当我尝试对.post(/register…)路由进行邮递员测试时,它会暂停加载几分钟,然后给出错误--

“无法得到任何响应 连接到 http://localhost:5000/api/users/register 时出错。为什么会发生这种情况:

服务器无法发送响应:确保后端正常工作

自签名 SSL 证书被阻止:通过在“设置”中关闭“SSL 证书验证”来解决此问题

请求超时:在设置中更改请求超时

调整建议的选项没有任何作用,我认为这两者都不是原因,因为我能够成功地处理.get(/test)路径。

**注意,我在邮递员请求的主体中添加了key:values,用于输入姓名、电子邮件和密码。化身是通过电子邮件生成的。

这是我使用(发布)--- http://localhost:5000/api/users/register

作为参考,这是工作路线(get)---http://localhost:5000/api/users/test

任何帮助都会很棒!

共有2个答案

施自珍
2023-03-14

我猜你正在尝试注册一个用户并保存它 mongoDB 并返回响应。你做错了什么,就是你没有把数据回复给用户。此外,您不会在整个 API 调用中保存任何内容。

你可以这样做。

router.post("/register", (req, res, next) => {
  User.findOne({ email: req.body.email }).then(user => {
    if (user) {
      return res.status(400).json({ email: "email already exists" });
    } else {
      const avatar = gravatar.url(req.body.email, {
        s: "200", // Size
        r: "pg", // Rating
        d: "mm" // Default
      });

      const newUser = new User({
        name: req.body.name,
        email: req.body.email,
        avatar,
        password: req.body.password
      });
      newUser.save()
         .then(user => {
              res.status(201).json(user); // 201 is HTTP Code for "Created"
         });
         .catch(next); // we usually handle error in a common middleware, which is why, I am calling "next" here with error as 1st argument.
    }
  });
});
卢伟志
2023-03-14

在 else 块中没有返回语句。请尝试如下操作...它应该工作

// @route   GET api/users/register
// @desc    Register user
// @access  Public

router.post("/register", (req, res) => {
  User.findOne({ email: req.body.email }).then(user => {
    if (user) {
      return res.status(400).json({ email: "email already exists" });
    } else {
    const avatar = gravatar.url(req.body.email, {
      s: "200", // Size
      r: "pg", // Rating
      d: "mm" // Default
    });

    return res.status(200).json(new User({
      name: req.body.name,
      email: req.body.email,
      avatar,
      password: req.body.password
     }));
    }
  });
});
 类似资料:
  • 有人能帮助我如何使用以下参数发送POST请求吗: 我试着在《邮递员的身体》中发送一个带有以下参数的: 然而,在发送上述请求时,我得到的位置字符串为null。

  • 我正试着在邮递员上打API。API正在服务器上工作,但我没有收到任何数据。以下是视觉图像: 它是回应我与“没有数据”和400错误的要求。

  • 我通过邮递员以以下方式调用我的java webservice(POST请求),这种方式工作得非常好(即,我可以看到我的记录被插入到数据库中): 下面是选项卡中的内容: 我必须使用CURL在PHP中调用相同的请求,而不是通过POSTMAN调用它。我想知道是否有办法将此命令导出到命令,以便在PHP代码中使用它?我在网上的许多地方发现了相反的方法,有人要求将基于Curl的请求转换为POSTMAN,但却不

  • 我试图使用Postman而不是Web服务的API文档提供的终端命令来请求数据。 curl命令如下: 我怎么能在邮递员内申请这个?我尝试添加和作为请求参数,但这不起作用

  • 检查这个的步骤 添加相关信息如下,我正在设置show_mature和newsletter_subscribedtrue 预期:将show_mature和newsletter_subscribed值设置为true实际:show_mature和newswetter_sSubscribed的值为false 如果有人能让我知道为什么会发生这种情况,我会非常感激吗?谢谢

  • 我正在尝试使用Postman访问API,以使用基本身份验证获取响应,但当我提交数据时,它会给我带来可怕的400错误,这显然表明某些标头设置不正确。 以下是API信息: 作为回应,我应该得到一个JSON形式的加密令牌,而不是得到这个错误。 以下是邮差截图: 我错过了什么吗?