我在页面组件中具有以下中间件:
async middleware ({store, redirect, params}) {
console.debug('Slug Middleware called with', params)
if (params.wasSlugified === true) return
let {slug, id} = await wrangleProjectSlug({slug: params.slug})
if (slug === 0) {
console.debug(`${params.slug} can not be identified as a porject`)
redirect('/')
}
console.debug('Slug Middleware', {id, slug})
params.id = id
params.slug = slug
params.wasSlugified = true
redirect((to)=>{
const {hash, params, query} = to
params.id = id
params.slug = slug
params.wasSlugified = true
return {path: `/project/${slug}`}
})
},
其中函数wrangleProjectSlug
从页面params.slug
获取参数project/_slug.vue
,并使用一些模糊字符串匹配来重定向到正确的页面名称。
由于该页面也将调用中间件,因此我希望它添加一个参数wasSlugified
以防止无限重定向。
我该如何实现?