使用 NextJS 在 Vercel 上重新验证不起作用

use*_*024 8 mongodb reactjs next.js vercel getstaticprops

我使用 Vercel 文档中提供的示例,每 15 秒从 MongoDB 获取一次数据,但不幸的是该函数不起作用。我应该怎么做才能使其按预期工作?

export async function getStaticProps() {
  const allData = getSortedData();

  const client = await clientPromise;
  const isConnected = await client.isConnected();
  const alerts = await client.db()
    .collection("alerts")
    .find({})
    .limit(6)
    .toArray();
  const alertsData = JSON.parse(JSON.stringify(alerts));

  return {
    props: {
      allData,
      isConnected,
      alertsData
    },
    revalidate: 15,
  };
}
Run Code Online (Sandbox Code Playgroud)

Wes*_*nse 2

因此,重新验证不仅仅每 15 秒获取一次新数据。它在构建时生成页面,将其作为缓存中的静态内容提供,然后等待下一个用户触发新的构建。新用户第一次触发构建时,他/她将看到一个过时的页面。然后,在后台将生成新页面并提供给刷新特定网页的下一个用户。

这是李·罗宾逊 (Lee Robinson) 解释的带时间戳的快速视频。 https://youtu.be/nrfuN_Hyd3Y?t=112

我希望这能让你更清楚地了解事情!

  • 代码看起来不错,您确定数据已更改吗?(仅供参考,重新验证仅在您构建并启动应用程序时有效。在开发模式下,它只是服务器渲染它) (2认同)