SequelizeDatabaseError: отправка ошибки в ответе - PullRequest
0 голосов
/ 06 февраля 2020

Регистрация ошибки и отправка ее обратно в ответ дает совершенно разные результаты, даже если это одна и та же переменная!

adminservices. js

var updateAdminById = function(new_admin_data, callback) {
  logger.info("new_admin_data: " + JSON.stringify(new_admin_data));
  logger.info("new_admin_data.id: " + new_admin_data.id);

  models.admin
   // .update({ admin_password: passwordCypher }, { where: { id: admin_id } })
    .update(new_admin_data, { where: { id:new_admin_data.id } })
    .then(function(admin) {
      callback({
        Update: true,
        admin
      })
    })
    .catch(function(error) {
      callback({
        Update: false,
        error
      })
    });
};

admin_routes. js

router.post("/updateAdminAccountById", function(req, res) {
  adminService.updateAdminById(req.body, (updateData) => {
    if (updateData.update) {
      //Update is succesfull return updated admin data
      res.status(200).json(updateData.admin)
    } else {
      //Update failed return error
      logger.error(updateData.error);
      res.status(400).json(updateData.error)

    }
  })
});

В терминале регистрация ошибки дает следующее:

2020-02-06T12: 02: 24+ 0100 admin_routes. js: 459 SequelizeDatabaseError: недопустимое входное значение для enum enum_admins_role: "Administrateur" Но ответ в POSTMAN такой:

{
    "name": "SequelizeDatabaseError",
    "parent": {
        "name": "error",
        "length": 179,
        "severity": "ERROR",
        "code": "22P02",
        "file": "d:\\pginstaller_12.auto\\postgres.windows-x64\\src\\backend\\utils\\adt\\enum.c",
        "line": "133",
        "routine": "enum_in",
        "sql": "UPDATE \"admins\" SET \"nom\"=$1,\"email\"=$2,\"mot_de_passe\"=$3,\"role\"=$4,\"id\"=$5,\"updatedAt\"=$6 WHERE \"id\" = $7",
        "parameters": [
            "NewUpdatedValue",
            "NewEmail",
            "NewPassword",
            "Administrateur",
            "29",
            "2020-02-06 11:02:23.391 +00:00",
            "29"
        ]
    },
    "original": {
        "name": "error",
        "length": 179,
        "severity": "ERROR",
        "code": "22P02",
        "file": "d:\\pginstaller_12.auto\\postgres.windows-x64\\src\\backend\\utils\\adt\\enum.c",
        "line": "133",
        "routine": "enum_in",
        "sql": "UPDATE \"admins\" SET \"nom\"=$1,\"email\"=$2,\"mot_de_passe\"=$3,\"role\"=$4,\"id\"=$5,\"updatedAt\"=$6 WHERE \"id\" = $7",
        "parameters": [
            "NewUpdatedValue",
            "NewEmail",
            "NewPassword",
            "Administrateur",
            "29",
            "2020-02-06 11:02:23.391 +00:00",
            "29"
        ]
    },
    "sql": "UPDATE \"admins\" SET \"nom\"=$1,\"email\"=$2,\"mot_de_passe\"=$3,\"role\"=$4,\"id\"=$5,\"updatedAt\"=$6 WHERE \"id\" = $7",
    "parameters": [
        "NewUpdatedValue",
        "NewEmail",
        "NewPassword",
        "Administrateur",
        "29",
        "2020-02-06 11:02:23.391 +00:00",
        "29"
    ]
}

Мой вопрос не о том, почему у меня это ошибка. Я успешно исправил это. Мои вопросы:
Почему ошибка отображается по-разному в терминале и в POSTMAN, если это одна и та же переменная?
Почему описание ошибки не отображается в POSTMAN, как он появляется в терминале?

...