收到错误请求而不是完整的错误消息
getting bad request instead of full error message
我正在尝试使用同一用户电子邮件对 POST
进行错误处理,其中包含以下内容(使用 superagent
):
export function signUpUser(userData) {
return async dispatch => {
try {
const currentUser = await request.post(`${url}/signup`).send(userData);
set(window.localStorage, 'x-auth', currentUser);
dispatch(signUpSuccessObject(userData));
} catch (error) {
dispatch(signUpFailObject(error));
}
};
}
我想获得可以在我的网络选项卡中看到的以下内容:
{"name":"SequelizeUniqueConstraintError","errors":[{"message":"email
must be unique","type":"unique
violation","path":"email","value":"leo@fsl.co","origin":"DB","instance":
但我得到的只是:
Bad Request
我的 API 控制器:
User.create(
Object.assign(req.body, {
password: bcrypt.hashSync(req.body.password, 10),
})
)
.then(() => {
const myToken = jwt.sign({email: req.body.email}, 'leogoesger');
res.status(200).send(myToken);
})
.catch(err => res.status(400).send(err));
},
res.send()
将发送纯 text/html
响应。
对 JSON API 使用 res.json(myToken)
和 res.status(400).json(err)
。
https://github.com/visionmedia/superagent/issues/1074
^^ 以此为参考。
基本上,我需要error.response
。这将给我整个对象,这将允许我访问错误消息。
所以完整的工作代码是:
export function signUpUser(userData) {
return async dispatch => {
try {
const currentUser = await request
.post(`${url}/signup`)
.send(userData)
.type('json');
set(window.localStorage, 'x-auth', currentUser);
dispatch(signUpSuccessObject(userData));
} catch (e) {
dispatch(signUpFailObject(e.response.body));
}
};
}
我正在尝试使用同一用户电子邮件对 POST
进行错误处理,其中包含以下内容(使用 superagent
):
export function signUpUser(userData) {
return async dispatch => {
try {
const currentUser = await request.post(`${url}/signup`).send(userData);
set(window.localStorage, 'x-auth', currentUser);
dispatch(signUpSuccessObject(userData));
} catch (error) {
dispatch(signUpFailObject(error));
}
};
}
我想获得可以在我的网络选项卡中看到的以下内容:
{"name":"SequelizeUniqueConstraintError","errors":[{"message":"email must be unique","type":"unique violation","path":"email","value":"leo@fsl.co","origin":"DB","instance":
但我得到的只是:
Bad Request
我的 API 控制器:
User.create(
Object.assign(req.body, {
password: bcrypt.hashSync(req.body.password, 10),
})
)
.then(() => {
const myToken = jwt.sign({email: req.body.email}, 'leogoesger');
res.status(200).send(myToken);
})
.catch(err => res.status(400).send(err));
},
res.send()
将发送纯 text/html
响应。
对 JSON API 使用 res.json(myToken)
和 res.status(400).json(err)
。
https://github.com/visionmedia/superagent/issues/1074
^^ 以此为参考。
基本上,我需要error.response
。这将给我整个对象,这将允许我访问错误消息。
所以完整的工作代码是:
export function signUpUser(userData) {
return async dispatch => {
try {
const currentUser = await request
.post(`${url}/signup`)
.send(userData)
.type('json');
set(window.localStorage, 'x-auth', currentUser);
dispatch(signUpSuccessObject(userData));
} catch (e) {
dispatch(signUpFailObject(e.response.body));
}
};
}