Javascript 中间件中的NuxtJS集Cookie

Javascript 中间件中的NuxtJS集Cookie,javascript,cookies,nuxt.js,Javascript,Cookies,Nuxt.js,我正在构建一个nuxtjs应用程序,并尝试从全局中间件设置cookie。我在GitHub上找到了一个贡献,它展示了一种实现这一点的方法 所以我实现了这样的中间件 export default function ({ isServer, res, query }) { if (query.lang) { if (isServer) { res.setHeader("Set Cookie", [`lang=${query.lang}`]); } else {

我正在构建一个nuxtjs应用程序,并尝试从全局中间件设置cookie。我在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
作为参数访问我的应用程序时,我总是遇到if条件的else块。所以我得到了错误

document is not defined
有人知道我的代码有什么问题吗。我看不出github上发布的代码有什么不同。

您应该使用

numxt.config.js
中的模块部分添加此内容:
['cookie-universal-nuxt',{alias:'cookiz'}],

您可以使用
numtserverinit
直接在商店中使用它:

async nuxtServerInit({commit,state,dispatch},
{app、store、route、req、res、error、redirect}
) {
应用程序$cookiz.set('lang',route.query.lang)
})
或者在中间件中:

导出默认函数({app,res,query}){
if(query.lang){
应用程序$cookiz.set('lang',query.lang)
}
}
您应该使用

numxt.config.js
中的模块部分添加此内容:
['cookie-universal-nuxt',{alias:'cookiz'}],

您可以使用
numtserverinit
直接在商店中使用它:

async nuxtServerInit({commit,state,dispatch},
{app、store、route、req、res、error、redirect}
) {
应用程序$cookiz.set('lang',route.query.lang)
})
或者在中间件中:

导出默认函数({app,res,query}){
if(query.lang){
应用程序$cookiz.set('lang',query.lang)
}
}

我遇到了nuxt生产版本的问题,它根本不会从页面或组件设置任何cookie。我遇到了nuxt生产版本的问题,它根本不会从页面或组件设置任何cookie