ブログ一覧に戻る

HerokuでAPIデータをうまく取得できない時の対処法とは?

APIenvJavaScriptNuxtError

みなさんこんにちは!
イザナギです!


npm i @nuxtjs/axios


axios: {  baseURL: process.env.BASE_URL    || '/'  },


heroku config:set API_URL=$(heroku info -s | grep web_url | cut -d= -f2)

まあ、予想通りなのですが、反映されていませんでした。

コードがおかしい(これが原因!)

結果を言えば、これが原因でした。
私は現状、非同期通信して得たデータを「vuex-persistedstate」を使ってstoreに格納してリロードしてもデータを消えないようにしています。
その非同期通信を実行していたのが、Nuxtの「fetch メソッド」でした。
Deploy Nuxt on Heroku
ネットで調べても、Nuxtの「fetch メソッド」で行っている記事を見つけたので、採用していました。
結果、ローカル環境では実行できたのですが、Herokuに上げた途端実行されていませんでした。
なので、Nuxtの「fetch メソッド」を他のメソッドに変えてみることにしました。
私はNuxtのライフサイクルである「created」で実行できるようにしました。
そうしたところ、HerokuでもAPIのデータを取れるようになりました!
やっとできたー!

原因を考察

まず一つとして、ローカル環境でしか開発していなかったのでが、原因だと考えられます。
やはり、本番環境に適したもので開発を行えば良かったと感じております。
二つ目として、Nuxtの理解が足りなかったという点ですね。
Nuxtの「fetch メソッド」を使って開発していたのですが、本番環境ではAPIのデータを取得できませんでした。
これは、Nuxtのライフサイクルや「fetch メソッド」「asyncDataメソッド」などへの理解が足りていなかったためだと思います。
なので、これからは理解も深めていきたいと思います!

まとめ

今回は、NuxtをHerokuでデプロイした時のAPIデータが取得できなかった時の対処法について書いてきました。
初めは、env(環境変数)が適応されていないのかなと思いましたが、APIのデータが取れていないだけでした。
やはりまだ、Nuxtの理解を深められてない!
なので、これからも勉強していきたいと思います。
それでは、今回はここで筆を置かせていただきます!
最後まで記事をご覧いただきあろがとうございました!

関連記事

この記事に関連するおすすめです。