Nuxt Middleware:动态重定向并添加参数?

时间:2019-11-21 08:49:53

标签: node.js vuejs2 vue-router middleware nuxt.js

我在页面组件中具有以下中间件:

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以防止无限重定向。

我该如何实现?

0 个答案:

没有答案