【问题标题】:What is .json() used for in error handling?.json() 用于错误处理是什么?
【发布时间】:2020-10-06 18:48:46
【问题描述】:

我正在学习错误处理,但不太确定 .json() 做了什么。它只是存储.status()的信息吗?它是在其他地方显示信息的一种方式吗? MDN 文档不是很清楚。他们说它回报了一个承诺。不确定这在这种情况下如何应用。如果有人能指出我正确的方向,我将不胜感激!

这里只是构建我的 CRUD 操作时的一段代码。

deleteMovie = async (req, res) => {
    await Movie.findOneAndDelete({ _id: req.params.id }, (err, movie) => {
        if (err) {
            return res.status(400).json({ success: false, error: err })
        }

        if (!movie) {
            return res
                .status(404)
                .json({ success: false, error: `Movie not found` })
        }

        return res.status(200).json({ success: true, data: movie })
    }).catch(err => console.log(err))
}

【问题讨论】:

    标签: javascript json asynchronous error-handling promise


    【解决方案1】:

    已更正:您要查找的文档在此处:Express API 文档中的https://expressjs.com/en/api.html#res.json。 .json() 方法用于解析响应数据并将其转换为您可能希望在应用程序中使用的友好 JSON 格式。期望看到 .json() 用于许多响应,而不仅仅是错误。

    【讨论】:

    • 你在正确的轨道上。这里的json()方法其实是一个快速js响应的辅助方法,设置状态为200,设置内容类型为application/json。用于 express 的 res.json 的文档可以在 expressjs.com/en/api.html 找到。您所指的 json() 与客户端上的 fetch 一起使用以解析 json 正文。我建议更新您的答案以反映快速响应 json 方法。无论哪种方式,您都是正确的,它使用 JSON 将错误转换为客户端上易于解析的格式。
    • 是的,@AlexanderStaroselsky 是对的。 findOneAndDelete 方法建议您使用 Mongoose & Express。我会用更正来更新我的评论
    【解决方案2】:

    只是存储.status()的信息吗

    没有。它也不用于错误处理。 .status 的结果被链接,虽然 ..json 进一步返回 JSON 对象的响应

    【讨论】:

      【解决方案3】:

      json 方法不是错误处理的一部分,而是用于响应处理。它是 Express Response Object 中的方法之一。

      此方法发送一个响应(具有正确的内容类型),即 使用 JSON.stringify() 将参数转换为 JSON 字符串。

      res.json(null)
      res.json({ user: 'tobi' })
      res.status(500).json({ error: 'message' })
      

      您可以将其作为以下代码的快捷方式

      res.set('content-type', 'application/json');
      res.send(JSON.stringify({"foo":"bar"}));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多