【发布时间】: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 仍然有效。我还尝试在浏览器中手动输入,并且确实有效