我在生产中遇到nuxt中间件的问题。
在localhost上,我只使用了这样的基本中间件:
const cookieparser = process.server ? require('cookieparser') : undefined
const Cookie = process.client ? require('js-cookie') : undefined
export default function ({ app, redirect, route, req }) {
let token = null
if (process.server) {
if (req.headers.cookie) {
const parsed = cookieparser.parse(req.headers.cookie)
try {
token = parsed.authToken
} catch (e) {
console.log(e)
}
}
} else if (process.client) {
token = Cookie.get('authToken')
}
if (token === null || token === false) {
return redirect({
name: 'login',
query: {
redirect: route.fullPath
}
})
}
}
虽然效果很好,但是在生产中,它甚至没有首先运行。它尝试投放该页面,然后运行。问题是我有一些需要记录的用户数据的组件,这些组件是由服务器端的asyncData获取的。但是首先,尝试渲染组件并引发错误,并且中间件甚至无法启动。
然后我寻找可以在config中定义的服务器中间件,但是如何在布局中调用它?