node.js - 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.slug
project/_slug.vue
由于该页面还将调用中间件,因此我希望它添加一个参数wasSlugified
以防止无限重定向。
我怎样才能做到这一点?
解决方案
推荐阅读
- c - 如何在非根 C 代码中运行 dracut 命令?
- python - 是否有一种基于另一个复选框的状态启用/禁用复选框的优雅方法?
- apache - 为什么/如何使用 bash 命令,例如“apt-get”和“sudo”(近乎言论自由)?
- python - 为什么这个 return 语句会在这个 python 递归函数中抛出一个错误?
- node.js - NodeJS 表单提交问题
- c# - 继承祖先前景画笔颜色的路径
- c# - 需要帮助了解 Xamarin Forms 的跨平台
- python - panda 的 to_latex() 生成的表格太宽。Longtable=True 不工作
- javascript - 打印出随后突出显示的文本,一次一个字符,显示每个字符之间有 10 毫秒的延迟
- c++ - 如何使宏处理不同类型的参数?