Я извлекаю данные из базы данных (хранилище данных GCloud) с помощью API Node.js и использую axios для выполнения вызовов AJAX на сервере Express.js.Метод GET демонстрирует странное поведение: он возвращает ошибку 500, хотя сервер, похоже, успешно извлекает данные из базы данных.Сначала я думал, что что-то не так отправлял данные обратно во внешний интерфейс, но после попытки JSON.stringify(error)
в пределах catch()
в вызове axios, я не думаю, что это так - JSON.stringify(error)
показываетжелаемый объект, как я ожидал, но это не имеет смысла вообще.Что может быть не так?
В аналогичных сценариях (без использования axios) я пробовал оба res.json () и res.send () на стороне сервера, и оба работали раньше, но здесь ни один изони решают проблему в front-end.Вот мой код:
Код серверной стороны
server.get('/getCard.datastore/:cardID/', (req, res, next) => {
getModel().read(req.params.cardID, (err, entity) => {
if (err) {
next(err);
return;
}
console.log(entity); // I verified that data is retrieved successfully here.
res.send(entity);
})
})
Код переднего конца (код axios) (Что должно работать)
let path = ("/getCard.datastore/" + card.id);
axios.get(path, card).then(function (response){
console.log(response); //here I should receive my data, but I don't.
})
.catch(function(error){
console.log(error); // this returns a 500 error
});
Альтернативный код переднего конца ("работает "очень странно"
let path = ("/getCard.datastore/" + card.id);
axios.get(path, card).then(function (response){
console.log(response);
})
.catch(function(error){
console.log(JSON.stringify(error)); // This shows the JSON object I was trying to retrieve, which doesn't make sense.
});
Короче говоря, ожидаемый результат заключается в нормальном получении объекта после его успешного извлечения из базы данных.Фактический результат заключается в том, что он получен после вызова http, но внутри объекта ошибки в catch()
, который регистрируется как ошибка сервера 500 при выполнении console.log(error)
, но обнаруживает себя после доступа к нему как console.log(JSON.stringify(error))
.