尝试生成NPM RUN时出现错误,因为我在nuxtServerInit中要求req来获取cookie。我该怎么解决?
nuxtServerInit({ commit }, { req }) {
let auth = null
if(req) {
if (req.headers && req.headers.cookie) {
const parsed = cookieparser.parse(req.headers.cookie)
try {
auth = JSON.parse(parsed.auth)
} catch (err) {
// No valid cookie found
}
}
}
commit('SET_USER', auth)
},
答案 0 :(得分:0)
您应该使用通用模式,而不是静态模式。 这里是同样的问题:https://github.com/nuxt/nuxt.js/issues/4066
答案 1 :(得分:0)
您无法在静态模式下使用req
,因为没有实际的请求。
在静态模式下,nuxtServerInit()
在构建时运行。
据我所知,您正在尝试创建动态应用程序,因此同一页面上的内容对于每个用户而言都会有所不同。静态页面用于静态网站,例如nuxtjs.org文档。
您需要使用SPA或服务器端渲染的应用程序。
答案 2 :(得分:0)
尽管在请求静态生成的Nuxt.js应用程序时无法使用nuxtServerInit()
,但是您可以更改要在应用程序mounted()
上调用的函数。
现在,取决于您构建应用程序的方式,这可能很简单,也可能会让人头疼。
更不用说它将在客户端执行,这是您可能需要重新考虑的事情,但这是nuxt generate
的本质,制作静态页面,然后其他所有操作都在客户端上运行
由于我看到的是您仅检查cookie,因此即使您在挂载而不是在服务器初始化时运行它,您也应该能够正常访问它们。