前提・実現したいこと
- docker-compose×rails(api)×Nuxt(universal)で、jwtを使ったログイン機能を実装しています。
- apiとfrontでそれぞれ別のコンテナを立ち上げています
- ログイン中にリロードするとvuexに保存したログインユーザーが消えてしまうため、リロード直後にnuxtServerInitでrailsにリクエストを送り、ユーザーを取得したいと考えています。
発生している問題・エラーメッセージ
640回ほどリクエストが繰り返された後、以下のメッセージが出てlocalhostが落ちてしまいます。
<--- JS stacktrace ---> FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory error Command failed with signal "SIGABRT". info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
該当のソースコード
Javascript
1# store/index.js 2import $axios from 'axios' 3. 4. 5. 6export const actions = { 7 async nuxtServerInit({ $axios }) { 8 await this.$axios.$get('/api/v1/users/current_user') 9 .then(user => commit('auth/setUser', user)) 10 }, 11. 12. 13. 14}
試したこと
- rails-apiのurl部分に試しにjson placeholderのurlを入れたところ、JSONを取得することができました。
よって、原因はrails側でリクエストを受け付けていないからだと思います。
- CSR時には問題なくrailsからapiを取得できます。
補足情報(FW/ツールのバージョンなど)
- Nuxt(universal)
- rails6
- docker-compose
あなたの回答
tips
プレビュー