Доброе утро всем! У меня проблемы с получением ответа от другой функции. В частности, я обращаюсь к службе, созданной на другом веб-сайте, и возвращаю имя базы данных. В настоящее время, когда я вызываю api напрямую с его заголовками на Postman, он работает и так же, когда это делается внутри функции getDbName (), которую я создал с помощью axios, однако, когда я пытаюсь вернуть этот ответ в другой, он выводит «неопределенное». ». Насколько я понимаю, до тех пор, пока используются функции стрелок response =>, вызов будет ожидать ответа должным образом. Я ошибаюсь в этом предположении?
Я пробовал много разных попыток возврата переменной. Я исследовал использование множества ссылок на SO ниже, но все еще не мог заставить его работать:
Обещание axios возвращает правильное значение в функции "axios.all", но не определено в "then"function
Axios печатает значение на консоли, но возвращает неопределенный
GET-запрос с возвращением axios неопределенного
[dbController.js]
import axios from 'axios';
import apiconfig from '../config/apiconfig';
function getDbName() {
return axios({
method: 'GET',
url: `${apiconfig.cb_url}/api/DbToBeWorked`,
headers: apiconfig.optionsHeaders,
}).then(dbn => {
console.log(dbn.data.db); //logs database name correctly
return dbn.data.db;
});
};
[routes.js]
import { Router } from 'express';
const routes = new Router();
routes.get('/api/test', (req, res) => {
getDbName().then(dbn => {
console.log(dbn) //this logs 'undefined'
return res.status(200).json(dbn);
});
});
Вывод должен быть dbn (имя базы данных) для обоих console.logs. В настоящий момент одно возвращает правильное имя, а другое возвращает неопределенное.