Регистрация ошибки и отправка ее обратно в ответ дает совершенно разные результаты, даже если это одна и та же переменная!
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, как он появляется в терминале?