.json()用于错误处理是什么?

时间:2020-06-17 02:54:50

标签: javascript json asynchronous error-handling promise

我正在学习错误处理,并且不确定.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))
}

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

是否仅存储.status()的信息

不。也不用于错误处理。 .status的结果通过.被链接,而.json进一步返回JSON对象的响应

答案 2 :(得分:0)

响应处理中使用json方法,而不是错误处理的一部分。这是Express Response对象中的方法之一。

此方法发送的响应(具有正确的内容类型)为 使用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"}));