axios Node-React始终返回500而不是自定义错误

siotufzp  于 2022-11-23  发布在  iOS
关注(0)|答案(2)|浏览(201)

我在服务器上返回错误时遇到问题。当在本地主机上运行时-一切正常,自定义错误返回到客户端。在部署到主机(Heroku,Render等)后,有效的请求按预期工作,但当错误发生时-我收到500,而不是我想返回的自定义错误。
尝试了几个错误处理程序,但没有任何结果。
错误处理程序(服务器)

const errorHandler = (error, request, response, next) => {
    console.log(error);
    if (error.errorType !== undefined && error.errorType.isShowStackTrace){
        response.status(error.errorType.httpCode).json({message: error.errorType.message});
        return;
    }
    
    response.status(700).json({message: 'GENERAL ERROR OCCURED'});
}

module.exports = errorHandler;

请求(客户)

try{
            const response = await axios.post("https://myUrl.com/users/login", user);
            localStorage.setItem("token", response.data.token);
            return response.data;
        }
        catch (err : any){
            return err;
        }

预期自定义错误,但得到500

nlejzf6q

nlejzf6q1#

所有有效的HTTP状态代码都在100到599(包括100和599)的范围内。
rfc9110规范清楚地表明这些是可扩展的,但前提是您遵循上面的规则(着重号是添加的):
HTTP状态代码是可扩展的。客户端不需要理解所有注册状态代码的含义,尽管这样的理解显然是需要的。但是,客户端必须理解任何状态代码的类别,如第一位数字所指示的,并将无法识别的状态代码视为等同于该类别的x00状态代码。
换句话说,系统需要知道您正在发送一个服务器错误,它以5开头,或者客户端错误以4开头。

4ngedf3f

4ngedf3f2#

我不是节点方面的Maven,但这是中间件吗?尝试调用next()

相关问题