小编Nuk*_*sor的帖子

在中间件中访问 LocalStorage - NuxtJs

好吧,我从 nuxt 开始,我有以下路线:

/home

/dashboard

/login
Run Code Online (Sandbox Code Playgroud)

我想保护 /dashboard,但仅适用于使用localStorage.

我想到的最简单的方法是创建一个 /middleware/auth.js

export default function () {
  if (!window.localStorage.getItem('token')) {
    window.location = '/login'
  }
}
Run Code Online (Sandbox Code Playgroud)

并将其注册到 /dashboard/index.vue 组件中。

<script>
export default {
  middleware: 'auth',
}
</script>
Run Code Online (Sandbox Code Playgroud)

但是我无法localStorage在中间件中访问,因为 LocalStorage 是客户端。

我已经尝试在created()仪表板布局中添加相同的检查,但是我无法返回未设置的窗口mounted()为时已晚,只能在页面完全组装后进行检查。

那么我怎样才能做到这一点呢?注意:我不打算在这个项目中使用任何 Vuex。

javascript local-storage vue.js vue-router nuxt.js

5
推荐指数
2
解决办法
1万
查看次数

sqlalchemy 中的三元组距离运算

我目前正在尝试使用 pg_trgm 操作%<->. 列上的 GIN 索引已经可用,但我找不到与前面提到的运算符等效的 sqlalchemy。

除了编写纯文本查询之外,解决此问题的最佳方法是什么。

一个简单的示例查询是:

tag = test
tag_subq = session.query(sticker_tag.file_id, f'sticker_tag.name <-> {tag}'.label(distance)) \
    .filter(f'sticker_tag.name % {tag}')) \
    .filter('distance' < 0.3) \
    .subquery("tag_subq")
Run Code Online (Sandbox Code Playgroud)

上面的查询显然不起作用,选择和过滤字符串只是占位符来可视化我打算做什么。

python postgresql fuzzy-search sqlalchemy trigram

1
推荐指数
2
解决办法
2562
查看次数