【发布时间】:2018-09-13 10:44:47
【问题描述】:
我正在制作一个 rest api,并且知道不正确的用户名或密码应该返回 401 状态码。问题是我无法在响应中发送带有此状态码的错误消息。
找不到用户时发送状态码200有什么问题,以便我可以向前端发送消息:
User.findOne({ email: req.body.email }).then((user) => {
if (!user) {
res.status(200).json({ message: 'Username not found'});
return;
}
如果我发送 400 或 401,那么如果我向路由发出 axios 请求,它会拒绝承诺并且我无法收到消息。有什么方法可以返回 400/401 的状态码并返回 json 吗?我将不胜感激任何帮助。这是我对路线的前端调用:
export const loginUser = ({ email, password}) =>
async (dispatch, getState) => {
const res = await axios.post(`/api/login`, {email, password}).catch(() => {
dispatch({ type: 'AUTH_ERROR', payload: res.data.message }) //error here because no res
});
dispatch({
type: 'USER_LOGIN',
payload: res.data._id
});
}
【问题讨论】:
标签: mongodb reactjs rest express