收到错误请求而不是完整的错误消息

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));
    }
  };
}