小编Lun*_*una的帖子

Redux 对 NextJS 13 App 目录仍然有意义吗?

随着新的 NextJS 13 引入app目录,redux 仍然有意义吗?

按照下一个文档,已经可以将 redux 提供程序包装在客户端组件周围。但是与 redux 共享状态将如何影响 Next 性能和优化?

接下来的文档要求在需要数据的地方获取数据,而不是向下传递组件树。请求将被自动删除重复数据

我对 Redux 的用途是控制应用程序中我希望保持一致的某些部分。

例如:如果我更改用户名,我希望它反映在需要该数据的整个应用程序中。

reactjs redux server-side-rendering react-redux next.js

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

如何告诉 Passport JS 中的 typescript req.user 永远不会未定义?

当使用 Passport JS 时,req.user路由内部被视为可能未定义。但我的路由方法之前的中间件确保情况并非如此。如何将其告诉打字稿?

Object is possibly 'undefined'.

例子:

someMethod = async (req: Request, res: Response) => {
  const { user } = req
  const userId: number = user.id
}
Run Code Online (Sandbox Code Playgroud)

在上面的打字稿中抛出错误,因为 user.id 可能未定义。

我当然可以做这样的事情:

if (!user) return
const userId: number = user.id
Run Code Online (Sandbox Code Playgroud)

但我相信通过我的方法一遍又一遍地重复这段代码并不是最好的方法,因为中间件甚至在到达路由方法之前就已经这样做了。

javascript node.js express typescript passport.js

6
推荐指数
1
解决办法
2191
查看次数

如何从数据库中清除过期的令牌?

我正在构建密码恢复。当用户请求时,我的应用程序会创建一个包含用户 ID、哈希值和到期日期的新行。

然后,用户会收到一封电子邮件,其中的 URL 包含数据库上的哈希值。当 URL 哈希值和 DB 哈希值匹配时,他可以更改密码。

删除过期密码恢复行的最佳方法是什么?我想到了3种可能性,但似乎都不对。

  1. 当请求密码恢复时,会安排一个作业在该行过期时从数据库中删除该行。(这意味着使用 Redis/Bull 来处理该工作)

  2. 在数据库上创建一个触发器,以在插入新行时删除所有过期的行。

  3. 与 3 相同,但触发器位于应用程序中。

我担心只将行保留在数据库中而不清理它是会被无用的数据污染。

database postgresql node.js express typescript

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