【问题标题】:How catch error message from server nodejs?如何从服务器 nodejs 捕获错误消息?
【发布时间】:2020-08-17 11:35:05
【问题描述】:

伙计们!这是出现问题时服务器端的代码:

return res.status(400).send({ error: 'Email already used!'});

这是我尝试捕获错误消息的前端代码:

return async dispacth => {
        try {

            const res = await axios.post('http://localhost:3333/account/signin', userData);

            localStorage.setItem('JWT_TOKEN', res.data.token);

            dispacth({
                type: AUTH_SIGN_IN,
                token: res.data.token
            });

        } catch (err) {
            console.log(err.message)
            console.error('error', err);

            dispacth({
                type: AUTH_ERROR,
                errorMessage: err.message
            });
        }
    }

但这是我在浏览器控制台上得到的:

【问题讨论】:

  • 试试err.response.body.error

标签: node.js reactjs server frontend backend


【解决方案1】:

尝试console.log(err.response) 而不是console.log(err.message)

我是 Node 和 Axios 的新手,但在捕获“err”后使用“err.response”解决了我遇到的非常相似的问题。

【讨论】:

    【解决方案2】:

    对于res.status(400).send('Email already used!');

    你可以这样做:

    console.log(error.response.data.message);
    

    对于作为 JSON 对象发送的错误消息,例如 res.status(400).send({ error: 'Email already used!'});

    你可以这样做:

    console.log(error.response.data.error);
    

    【讨论】:

      猜你喜欢
      • 2011-01-11
      • 1970-01-01
      • 1970-01-01
      • 2016-03-12
      • 2023-03-29
      • 1970-01-01
      • 2022-01-08
      • 2014-02-28
      • 1970-01-01
      相关资源
      最近更新 更多