前提・実現したいこと
バックエンドにLaravel,フロントエンドにNuxtjsを用いた開発物をデプロイする場面でエラが発生しました。
ローカル環境で開発しているときには問題なく開発できたのですがデプロイを行うなかでエラーが発生しました。
発生している問題・エラーメッセージ
エラーをよむ限り、const token = 'Bearer ' + cookieparser.parse(req.headers.cookie).tokenのheadersでエラーのようです。何かcookieparserとnetlifyの関係性などでしょうか?
netlify
1──────────────────────────────────────────────────────────────── 26:23:49 PM: 1. Build command from Netlify app 36:23:49 PM: ──────────────────────────────────────────────────────────────── 46:23:49 PM: 56:23:49 PM: $ npm run generate 66:23:49 PM: > xxx_frontend@1.0.0 generate /opt/build/repo 76:23:49 PM: > nuxt generate 86:23:50 PM: [warn] When using `nuxt generate`, you should set `target: 'static'` in your `nuxt.config` 96:23:50 PM: ???? Learn more about it on https://go.nuxtjs.dev/static-target 106:24:03 PM: [error] [BABEL] Note: The code generator has deoptimised the styling of /opt/build/repo/node_modules/bootstrap-vue/src/icons/icons.js as it exceeds the max of 500KB. 116:24:24 PM: [error] /loginBtn 126:24:24 PM: 136:24:24 PM: TypeError: Cannot read property 'headers' of undefined 146:24:24 PM: at Store.nuxtServerInit (store/index.js:53:0) 156:24:24 PM: at Array.wrappedActionHandler (/opt/build/repo/node_modules/vuex/dist/vuex.common.js:853:23) 166:24:24 PM: at Store.dispatch (/opt/build/repo/node_modules/vuex/dist/vuex.common.js:518:15) 176:24:24 PM: at Store.boundDispatch [as dispatch] (/opt/build/repo/node_modules/vuex/dist/vuex.common.js:408:21) 186:24:24 PM: at module.exports.__webpack_exports__.default (.nuxt/server.js:131:0) 196:24:24 PM: at runNextTicks (internal/process/task_queues.js:62:5) 206:24:24 PM: at listOnTimeout (internal/timers.js:518:9) 216:24:24 PM: at processTimers (internal/timers.js:492:7)
該当のソースコード
下記のソースコードはページを読み込むたびにuser情報を取得するコードです。
1.cookieのtokenを取得してheaders情報としてリクエストする。
2.バックエンドから帰ってきた値をuser情報として保存する。
nuxt
1export const actions = { 2 async nuxtServerInit({ commit },{ req }){ 3 const token = 'Bearer ' + cookieparser.parse(req.headers.cookie).token 4 let user = ''; 5 try { 6 user = await this.$axios.$get('/user',{ 7 headers:{ 8 'Authorization': token, 9 'Accept':'application/json' 10 } 11 }) 12 } catch (err) { 13 console.log(err); 14 } 15 commit('setToken',{ token:cookieparser.parse(req.headers.cookie).token}); 16 commit('setUser',user); 17 } 18}
あなたの回答
tips
プレビュー