Nuxt JS набор Cook ie в промежуточном ПО - PullRequest
0 голосов
/ 21 февраля 2020

Я создаю приложение nuxt js и пытаюсь настроить повара ie из глобального промежуточного программного обеспечения. Я нашел этот вклад на GitHub, который показывает метод для этого.

Итак, я реализовал свое промежуточное ПО следующим образом

export default function ({ isServer, res, query }) {
  if (query.lang) {
    if (isServer) {
      res.setHeader("Set Cookie", [`lang=${query.lang}`]);
    } else {
        document.cookie = `lang=${query.lang}`;
    }
  }
}

Моя проблема в том, что когда я посещаю мой приложение с ?lang=xxx в качестве параметра, я всегда работаю в блок else моего условия if. Поэтому я получаю сообщение об ошибке

document is not defined

Кто-нибудь знает, что не так с моим кодом. Я не вижу разницы в коде, опубликованном на github.

1 Ответ

1 голос
/ 21 февраля 2020

Вы должны использовать cook ie -universal-nuxt .

Добавьте это в разделе вашего модуля в nuxt.config.js:
['cookie-universal-nuxt', { alias: 'cookiz' }],

Вы можете использовать его непосредственно в магазине с nuxtServerInit:

async nuxtServerInit({ commit, state, dispatch },
    { app, store, route, req, res, error, redirect }
) {
    app.$cookiz.set('lang', route.query.lang)
})

или в промежуточном программном обеспечении:

export default function ({ app, res, query }) {
  if (query.lang) {
    app.$cookiz.set('lang', query.lang)
  }
}
...