得到错误的请求而不是完整的错误信息
我正在尝试使用以下(使用superagent
)相同的用户电子邮件进行POST
error handling:
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)); } }; }
我想要得到我可以在我的networking选项卡中看到的以下内容:
{“name”:“SequelizeUniqueConstraintError”,“errors”:[{“message”:“email must be unique”,“type”:“unique violation”,“path”:“email”,“value” fsl.co”, “原产地”: “DB”, “实例”:
但是,我所得到的是:
错误的请求
我的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)); } }; }