Я запускаю функцию, и когда я правильно ввожу данные, она делает именно то, что мне нужно, но при наличии неверных данных я хочу вернуть сообщение об ошибке пользователю. Как вы можете видеть на рисунке, запрос возвращает сообщение, которое я хочу отобразить, но я не могу получить к нему доступ!
Мой контроллер AngularJS:
vm.avpLogic = function(last, avp_id) {
console.log("Checking AVP Registration");
alert("Checking AVP Registration");
registrationDataFactory.checkAVPReg({ last: last, id: avp_id })
.then(function(response){
if(!response) {
console.log(error);
alert(error);
}
console.log(" frontend RESPONSE ");
console.log(response);
vm.avp = response;
vm.addPlayer(vm.registration, vm.avp)
})
.catch(function(response){
// THE RESPONSE COMES BACK HERE FOR INVALID DATA
console.log(response.body); // THROWS ERRORS, see pic
console.log("An error occurred, but we don't know how to log it.", message);
alert("FAILED AVP CHECK. Name and ID must match exactly, and they must be active during the rumble.");
return error;
});
}
Я пробовал регистрировать ошибку, разрешение, ответ, сообщение, и все они приходят, дают мне ошибку. Если я удаляю строки console.log, появляется всплывающее предупреждение с сообщением FAILED AVP CHECK. Я хочу, чтобы это было на заказ, с сообщением, отображаемым в окне ответа.
Трассировка в обратном направлении, мои фабрики данных console.logs просто отлично:
function complete(response) {
console.log("data factory response SUCCESS!");
return response;
}
function failed(error) {
console.log("API error response: ", error);
}
Когда я смотрю в консоль, я просто вижу объект ошибки, к которому я могу получить доступ, но, похоже, не могу.
Часть моей функции NodeJS, отправляющая ошибку:
return res.status(422).send({
message: 'Missing parameters! Need name and AVP ID'
});