如何在Nuxt中的验证路由上重定向?

时间:2019-12-04 02:44:00

标签: vue.js nuxt.js

如果验证查询后的页面错误,我想重定向。我怎样才能做到这一点?这是我的代码

validate({ params, query, router }){
    if(isAfter(new Date(query.date_check_in), addDays(new Date(), 1)) !== true) {
      query.date_check_in = format(addDays(new Date(), 1), 'YYYY-MM-DD')
      query.date_check_out = format(addDays(new Date(), 2), 'YYYY-MM-DD')
      return true
    } else if(query.date_check_in === 'Invalid Date' || query.date_check_out === 'Invalid Date') {
      router.push('search')
      return true
    }
  }

2 个答案:

答案 0 :(得分:0)

您可以使用“重定向”

例如:

validate({ store, redirect }) {
    // some codes...
    redirect('/')
}

答案 1 :(得分:0)

It's recommended 从中间件重定向。您只需要创建一个中间件,例如src/middleware/redirect.js

export default function({ app }) {
    app.router.push(`/`);
}

然后,在您的页面中,您需要...

export default {
    middleware: [
        'redirect',
    ],
},

您可以按如下方式推送到路由器(记住 validate() 应该返回 either boolean or promise):

validate({ app }) {
    app.router.push('/');

    return true;
},