我正在构建nuxtjs应用,并尝试从全局中间件设置cookie。我在GitHub上发现了this贡献,其中提供了一种实现此目的的方法。
所以我实现了这样的中间件
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上发布的代码有所不同。
您可以通过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)
}
}