отправка обратно данных API в vue в express возвращает пустой объект - PullRequest
1 голос
/ 25 апреля 2020

Я пытаюсь отправить некоторые данные из моего приложения express, используя в своем приложении следующее: js эти данные получены из стороннего API, и я хочу отправить их обратно в мое приложение переднего плана. Я могу видеть контент в моем express API, но, похоже, он не дает результата моему внешнему интерфейсу ?? у кого-нибудь есть какие-либо идеи относительно того, почему я получаю журнал в консоли ниже.

Я подозреваю, что это связано с некоторой асинхронной c или проблемой тайм-аута с приложением express, но я не был Я могу решить проблему самостоятельно.

function getFish(){
        axios.get('https://www.fishwatch.gov/api/species')
            .then(function (response) {
                console.log(response)
               return response

                })
                .catch(function (error) {
                    console.log(error);
                })
}


app.get('/getFish', async(req,res) =>{
    let fish = await getFish()
    res.json({fishes: fish})
})

, когда я пытаюсь зарегистрировать данные в своем приложении, я получаю только пустой объект

{}

, вот мой vue код для записать значение, возвращаемое моим express API.

 created:function(){
     this.fetchFish()
   },

  methods: {

      fetchFish(){
         fetch('http://localhost:3000/getFish')
          .then((response) => {
             return response.json();
          })
          .then((data) => {
          console.log(data);
        });
    }
  }

1 Ответ

1 голос
/ 25 апреля 2020

Вам необходимо вернуть обещание axios в функции getFish вашего сервера, иначе маршрут /getFish не будет await ничего:

function getFish(){
    // New `return` statement
    return axios.get('https://www.fishwatch.gov/api/species')
    .then(function (response) {
        console.log(response)
        return response
    })
    .catch(function (error) {
        console.log(error);
    })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...