Nuxt中如何使用nuxtServerInit作为中间件
How to use nuxtServerInit in Nuxt as middleware
我将我的应用程序拆分为 server
和 client
一个。我是 运行 服务器并在 express 中使用 nuxt.render
中间件,我想在 nuxt 存储中获取我的 user/session/whatever。我制作了一个 store/auth.js
文件:
export const state = () => ({
user: null
})
export const mutations = {
SET_USER: (state, user) => {
state.user = user
}
}
export const actions = {
nuxtServerInit ({commit}, {req}) {
console.log(req)
},
async login ({commit}, {username, password}) {
try {
const data = this.$axios.$post('/login', {username, password})
commit('SET_USER', data)
} catch (err) {
throw err
}
},
async logout ({commit}) {
this.$axios.post('/logout')
commit('SET_USER', null)
}
}
加载页面或执行操作时没有任何反应。 git repository 具有完整的服务器端和客户端。
UPD 对于那些正在寻找详细信息的人:
确保您的 nuxtServerInit
函数在 index.js
文件中。你可以这样移动它:
export const actions = {
nuxtServerInit ({commit}, {req}) {
if (req.user) commit('auth/SET_USER', req.user)
}
}
和auth.js
文件没有这个功能了。它以这种方式工作。
nuxtServerInit
操作只能在商店 index.js 文件内使用(或者换句话说,在创建商店的地方)。
所以试着把你的 nuxtServerInit
移到那里。
我将我的应用程序拆分为 server
和 client
一个。我是 运行 服务器并在 express 中使用 nuxt.render
中间件,我想在 nuxt 存储中获取我的 user/session/whatever。我制作了一个 store/auth.js
文件:
export const state = () => ({
user: null
})
export const mutations = {
SET_USER: (state, user) => {
state.user = user
}
}
export const actions = {
nuxtServerInit ({commit}, {req}) {
console.log(req)
},
async login ({commit}, {username, password}) {
try {
const data = this.$axios.$post('/login', {username, password})
commit('SET_USER', data)
} catch (err) {
throw err
}
},
async logout ({commit}) {
this.$axios.post('/logout')
commit('SET_USER', null)
}
}
加载页面或执行操作时没有任何反应。 git repository 具有完整的服务器端和客户端。
UPD 对于那些正在寻找详细信息的人:
确保您的 nuxtServerInit
函数在 index.js
文件中。你可以这样移动它:
export const actions = {
nuxtServerInit ({commit}, {req}) {
if (req.user) commit('auth/SET_USER', req.user)
}
}
和auth.js
文件没有这个功能了。它以这种方式工作。
nuxtServerInit
操作只能在商店 index.js 文件内使用(或者换句话说,在创建商店的地方)。
所以试着把你的 nuxtServerInit
移到那里。