如何在静态网站的nuxtServerInit函数上获取cookie?

时间:2019-05-08 14:53:43

标签: vue.js nuxt.js

尝试生成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)
  },

3 个答案:

答案 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,因此即使您在挂载而不是在服务器初始化时运行它,您也应该能够正常访问它们。