【问题标题】:res.json from Express Request Sends Blank Json In Postman来自 Express 请求的 res.json 在 Postman 中发送空白 Json
【发布时间】:2021-02-12 06:11:41
【问题描述】:

我正在处理以下请求,但是当我在邮递员中运行它时,它返回空 json。

router.get('/:id', (req, res) => {
    console.log(req.params.id)
    User.findById(req.params.id)
    .then((user)=> {
        console.log(user.eMail, user.words, user)
        res.json(user)})
    .catch((err) => {res.status(400).json("Error: "+err)})
})

我能够将 user.eMail、user.words 和 user 获取到所有 console.log。所以我相信我在邮递员中的 json 请求工作正常。但是,当我尝试以 JSON 格式返回用户时,我得到了状态为 200 的空白 JSON。我也试过用以下方式切换我的 res.json()

res.json({
            eMail: user.eMail,
            words: user.words
        })})

但是,这也让我在邮递员中返回了空 JSON

【问题讨论】:

  • 尝试将整个处理程序替换为res.json({ eMail: 'test', words: 'test words' })}) 并找出问题是否消失
  • 我从来没有想过让我的 json 静态来测试它。当我确实尝试过时,它也返回了一个空白 json。
  • 所以你的问题与这条路线无关。也许你也有router.get('/', ...
  • 您是否确认一旦您通过 Postman 发送请求,它就会登录控制台?清除终端,然后验证它。另外 - 不确定您的其他路线是什么样的,但 Postman 可能被配置为 POST 请求而不是 GET 请求。您也可以尝试在浏览器中手动输入 URL 并试一试。它会直接在您的浏览器窗口中返回 JSON,因为它只是对特定端口上特定 URL 的简单获取请求。 127.0.0.1:3000/idhere
  • 好的,我清除了终端,console.log 仍然有效。我还尝试在浏览器中手动输入,并且确实有效

标签: node.js express


【解决方案1】:

好的,我从之前的堆栈溢出线程中找到了解决方案:GET request works in browser but not in POSTMAN or SOAPUI

原来我们的回复是通过浏览器来的,而不是在邮递员中。当我用谷歌搜索这个问题时,我发现我应该在邮递员中清除我的请求,清除我的 cookie,然后重新开始。之后一切正常。

【讨论】:

  • 非常好,感谢您的分享。我很好奇可能出了什么问题。开发有时会非常令人沮丧:)
猜你喜欢
  • 2021-06-18
  • 1970-01-01
  • 2019-07-14
  • 1970-01-01
  • 1970-01-01
  • 2021-04-08
  • 2020-11-10
  • 2020-12-21
  • 2020-09-28
相关资源
最近更新 更多