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