首页 > 解决方案 > Nuxt 中间件:动态重定向和添加参数?

问题描述

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

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.slugproject/_slug.vue

由于该页面还将调用中间件,因此我希望它添加一个参数wasSlugified以防止无限重定向。

我怎样才能做到这一点?

标签: node.jsvuejs2vue-routermiddlewarenuxt.js

解决方案


推荐阅读