You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js部署DigitalOcean时数据获取结果不一致求助

排查Next.js在DigitalOcean构建时getProducts返回空数据的问题

核心问题

在DigitalOcean部署Next.js应用时,静态生成定价页面的getStaticProps中,getProducts函数返回空数据数组,但本地构建完全正常,且两个环境连接同一数据库。

调试信息

getStaticProps代码

export const getStaticProps: GetStaticProps = async ({ locale }) => {
  const products = await getProducts(undefined, true, true)
  console.log('Debug whether products get fetched during build: ', products)
  if (products.data == null) {
    return { redirect: { permanent: true, destination: '/500' } }
  }
  return {
    props: {
      ...(await serverSideTranslations(locale ?? 'en', [
        'common',
        'pricing',
        'faq'
      ])),
      products: JSON.parse(JSON.stringify(products.data))
    }
  }
}

本地构建日志

Debug whether products get fetched during build:  
{
   data: [{...}, {...}, {...}, {...}, {...}],
   meta: { current_page: 1, from: 1, last_page: 1, to: 5, total: 5 }
}

DigitalOcean构建日志

Debug whether products get fetched during build:  
{
   data: [],
   meta: { current_page: 1, from: 0, last_page: 1, to: 0, total: 0 }
}

排查思路与解决建议

  • 核对构建环境的环境变量
    确认DigitalOcean构建过程中,数据库连接字符串、API密钥等环境变量和本地完全一致,注意排查大小写错误、额外空格,以及变量是否在构建阶段被正确注入(比如DigitalOcean App Platform需确保构建环节能访问所有必要变量)。

  • 验证数据库访问权限
    检查数据库防火墙/安全组的白名单设置,确认DigitalOcean应用的出站IP已被允许访问数据库。若使用托管数据库服务,部分平台需要手动添加外部IP到允许列表。

  • 排查getProducts函数的逻辑差异
    检查getProducts的实现细节:

    • 是否依赖本地环境特有的配置(比如本地测试标记、特定角色权限)?
    • 传入的参数undefined, true, true是否在生产构建环境触发了过滤逻辑?比如第二个true是否是“仅返回草稿数据”的开关,而生产数据库中无草稿状态的产品?
    • 是否存在时区差异?若查询涉及时间范围,本地时区与DigitalOcean服务器时区不同可能导致数据过滤异常。
  • 查看构建时的完整日志
    在DigitalOcean构建日志中查找getProducts执行时的错误或警告信息,比如数据库连接超时、查询报错等。可在getProducts内部添加更详细的错误捕获日志,打印Promise异常信息。

  • 检查构建阶段的网络限制
    若数据库部署在私有网络中,而DigitalOcean构建环境不在同一网络,会导致无法访问。需调整网络配置,确保构建过程能连接到数据库。

  • 验证数据一致性
    直接连接生产数据库,执行与getProducts相同的查询语句,确认数据库中产品数据未被误删除或状态变更,保证本地与生产数据一致。

  • 核对Next.js构建模式
    确认本地和DigitalOcean的构建命令一致(比如均为next build),排查是否存在process.env.NODE_ENV不同导致的逻辑分支差异。

内容的提问来源于stack exchange,提问作者Ernestas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 12:50:20