Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法访问我的响应错误消息?_Javascript_Node.js_Reactjs_Express - Fatal编程技术网

Javascript 有没有办法访问我的响应错误消息?

Javascript 有没有办法访问我的响应错误消息?,javascript,node.js,reactjs,express,Javascript,Node.js,Reactjs,Express,好的,我尝试在前端显示我的后端错误消息,所以我将其设置为发送带有错误代码和消息的响应,然后在我的操作中,我在我的React组件中设置一个状态,然后我将使用该状态显示错误消息,到目前为止,我可以得到显示错误代码,但这是没有用的大多数用户,所以我想访问我与代码发送的消息!所以我希望它说用户已经存在或者密码不匹配,而不是错误:请求失败,状态代码为400 我的行动 export const signup = (form, router, setError) => async (dispatch)

好的,我尝试在前端显示我的后端错误消息,所以我将其设置为发送带有错误代码和消息的响应,然后在我的操作中,我在我的React组件中设置一个状态,然后我将使用该状态显示错误消息,到目前为止,我可以得到显示错误代码,但这是没有用的大多数用户,所以我想访问我与代码发送的消息!所以我希望它说
用户已经存在
或者
密码不匹配
,而不是
错误:请求失败,状态代码为400

我的行动

export const signup = (form, router, setError) => async (dispatch) => {
  const changeError = (error) => {
    setError(error);
  };

  try {
    const { data } = await api.signup(form);
    dispatch({ type: AUTH, data });
    router.push("/");
  } catch (error) {
    console.log(error);
    changeError(error);
  }
};
我的节点注册

export const signup = async (req, res) => {
  const { email, password, confirmPassword, firstName, lastName } = req.body;
  try {
    const existingUser = await user.findOne({ email });
    if (existingUser)
      return res.status(400).json({ message: "User already exists." });

    if (password != confirmPassword)
      return res.status(400).json({ message: "Passwords do not match." });

    const hashedPassword = await bcrypt.hash(password, 12);

    const result = await user.create({
      email,
      password: hashedPassword,
      name: `${firstName} ${lastName}`,
    });

    const token = jwt.sign(
      { email: result.email, id: result._id },
      process.env.JWT_KEY,
      {
        expiresIn: "1h",
      }
    );

    res.status(200).json({ result, token });
  } catch (error) {
    res.status(500).json({ message: "Something went wrong." });
  }
};

在Google上进行少量搜索后,如果您使用Axios作为api,则错误消息的路径为:

error.response.data.message

否则,你试过这样的东西吗

error.data.message

error.message

在Google上进行少量搜索后,如果您使用Axios作为api,则错误消息的路径为:

error.response.data.message

否则,你试过这样的东西吗

error.data.message

error.message
正如Guy所说,在我自己找到答案之前,我将错误设置为
error.response.data.message

因此,现在我可以在前端设置错误以显示消息

是的,我很抱歉使用了axios,下次再提这个我会知道的

export const signup = (form, router, setError) => async (dispatch) => {
  const changeError = (error) => {
    setError(error);
  };

  try {
    const { data } = await api.signup(form);
    dispatch({ type: AUTH, data });
    router.push("/");
  } catch (error) {
    console.log(error);
    changeError(error.response.data.message);
  }
};

正如盖伊所说,在我自己找到答案之前,我将错误设置为
error.response.data.message

因此,现在我可以在前端设置错误以显示消息

是的,我很抱歉使用了axios,下次再提这个我会知道的

export const signup = (form, router, setError) => async (dispatch) => {
  const changeError = (error) => {
    setError(error);
  };

  try {
    const { data } = await api.signup(form);
    dispatch({ type: AUTH, data });
    router.push("/");
  } catch (error) {
    console.log(error);
    changeError(error.response.data.message);
  }
};

在react catch块中,
console.log(error.response.data.message)
应显示消息发送请求时是否使用Fetch或Axios?在react catch块中,
console.log(error.response.data.message)
在发送请求时,应该显示以下消息:您是在使用Fetch还是Axios?@ikhvjs问这个问题的不是我。我不确定他是否在使用Axios。@ikhvjs问这个问题的不是我。我不确定他是否在使用Axios。