【问题标题】:How do i store data in nextjs that is accessible from anywhere如何将数据存储在可从任何地方访问的 nextjs 中
【发布时间】:2021-08-13 19:15:33
【问题描述】:

我有一个 nextjs 应用程序,它需要根据用户的输入发出 api 请求。现在,api 请求需要一个令牌,我想在应用程序启动时以及我需要基于 getServerSideProps 或其他东西的用户数据的任何时候生成该令牌。我查看了很多选项,例如将其保存在 cookie 和会话中,但我认为我的用例不能达到目的,而且我还想了解如何在 nextjs 中完成它。 基本上我需要一个

const data = {}

可从服务器上的每个请求访问,因此当服务器收到请求时,它不必重新获取它已经拥有的数据。

【问题讨论】:

  • 这听起来很像您正在尝试实现身份验证,所以我强烈建议您阅读the NextJS website here 上提供的文档。
  • 没有。我没有尝试实施任何身份验证。基本上,我的用户基本上都需要访问相同的数据。但是,如果一个用户决定更新某些内容,我希望在有意义的情况下为所有用户更新。
  • @SakibulAlam,您是否需要无需刷新即可立即访问这些数据?更好地描述你想要达到的目标(也许提供一个你期望发生的例子)会帮助其他人帮助你。

标签: javascript reactjs next.js server-side-rendering


【解决方案1】:

这是个好问题。

静态数据

如果您有静态数据,那么您的解决方案不言自明。只需将其导出,以便所有其他文件都可以导入。

  const data = {}
  export default data

客户数据

但是,在您的情况下,您说的是静态的,但数据不是,例如。用户信息必须由其中一个 API 解析,然后从现在开始作为“静态”存储在某处。所以它不是静态的。

如果它是客户端 (cookie),您可以直接连接该变量,例如在 Next Auth 中。 https://next-auth.js.org/getting-started/example

服务器数据

如果是服务器数据,则需要通过您的 API /pages/api 之一进行持久化。之后是的,您可以通过getServerSideProps 将其发送到_app.js

【讨论】:

  • 我实际上并没有太多使用 api,所以我只是在寻找一种将其存储在 getServersideProps 中的方法。因为在每一页上,我的计划是让getServerSideProps 引用一个像对象一样的全局状态。但如果我们确定没有其他办法,我想我会使用你的建议。
  • getServersideProps 的主要目的是与服务器资源连接。你可以在那里连接任何东西,对我来说,如果数据是静态的,这类似于你自己的方法。
  • 谢谢,我继续使用 api 方法
猜你喜欢
  • 1970-01-01
  • 2017-03-20
  • 2021-07-31
  • 2018-05-05
  • 2013-09-17
  • 1970-01-01
  • 2017-03-26
  • 2011-10-04
  • 2016-03-10
相关资源
最近更新 更多