Algolia 和 Next.js - 索引更新和 getStaticProps 副作用

ser*_*ays 5 reactjs algolia server-side-rendering next.js

我有一个相当复杂的 Next.js 网站,主要是静态呈现的,并且我正在将 Algolia 搜索添加到该网站中。Algolia 的机制要求您使用他们的 API,并在每次发布附加内容时通知他们。

我的问题是在 Next 应用程序中您通知 Algolia 的位置。鉴于我的网站用于getStaticProps获取数据,我认为这是通知和更新 Algolia 的合理位置。它有效,但想知道其他人做了什么、最佳实践、权衡等等。

生命周期如下所示:

  • 通过 GraphQL 从数据库获取数据(使用 headless CMS Prismic)
  • 在发送到 Algolia 之前对 Next 内的数据进行标准化
  • 将数据发送到 Algolia(他们的系统会协调引用的旧/新记录uuid

实现这一点的代码:

// Use nextjs getStaticProps, destructure default params
export async function getStaticProps({ params, preview = false, previewData }) {
        
  // Data fetch (assume getAllNewsForLandingPage gets an array of obj)
  pageData.data = await getAllNewsForLandingPage(params.uid, previewData)

  // Format and normalize results
  const algoliaFormattedData = dataFormatter(pageData.data)

  // Send data back to Algolia, who will reconcile old and new data automatically
  await AlgoliaIndex.saveObjects(algoliaFormattedData)
}
Run Code Online (Sandbox Code Playgroud)