使用Axios进行API调用时Express中的错误处理

问题描述 投票:0回答:1

我正在尝试建立一个基本的Express应用程序,以使用axios获取一些API数据。我想以正确的方式做事,但是我对错误处理有些迷失。理想情况下,如果发生错误,我想将其传达给用户,如果API调用位于路由之内,我可以这样做。但是,如果它是一个单独的功能,您将如何做呢?

使用异步的axios调用功能:

const getForm = async () => {
    try {
        const config = {
            method: 'get',
            url: 'https://api.something.org/niceform'
            }
        }
        const response = await axios(config)
        return response
    } catch (error) {
        return error.message
    }
}

快递路线:

app.get('/niceform', async (req, res) => {
    try {
        const data = await getForm()
        res.send(data)
    } catch (error) {
        ???
    }
})

如果我理解正确,getForm()函数将返回响应或错误,然后路由将发送返回的任何内容。但是,路线的catch块会做什么,我应该如何使用它?

此设置是否被认为是一种好习惯?任何建议将不胜感激,我仍在学习。

api express error-handling async-await axios
1个回答
0
投票

您可以throw而不是return错误消息。通过在getForm catch块内使用throw,错误/异常将被下一个catch块捕获,该错误块位于app.get/niceform'路由中。

参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/throw

© www.soinside.com 2019 - 2024. All rights reserved.