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

Next.js 13连接Upstash Redis时出现startsWith读取未定义属性错误

Upstash Redis连接报错:Cannot read properties of undefined (reading 'startsWith')

问题代码

import { Redis } from "@upstash/redis";

const redis = new Redis({
  url: process.env.UPSTASH_REDIS_URL,
  token: process.env.UPSTASH_REDIS_TOKEN
});

错误信息

- error node_modules\@upstash\redis\esm\platforms\nodejs.js (27:36) @ startsWith
- error Error [TypeError]: Cannot read properties of undefined (reading 'startsWith')      
    at new Redis (webpack-internal:///(rsc)/./node_modules/@upstash/redis/esm/platforms/nodejs.js:30:37)
    at eval (webpack-internal:///(rsc)/./app/upstash/page.tsx:10:15)
    at (rsc)/./app/upstash/page.tsx (C:\SourceCode\nextjs\.next\server\app\upstash\page.js:975:1)
    at Function.__webpack_require__ (C:\SourceCode\nextjs\.next\server\webpack-runtime.js:33:42)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async collectGenerateParams (C:\SourceCode\nextjs\node_modules\next\dist\build\utils.js:828:17) {
  digest: undefined
}

问题原因

错误根源是process.env.UPSTASH_REDIS_URL或process.env.UPSTASH_REDIS_TOKEN为undefined,Upstash Redis初始化代码尝试对undefined值调用startsWith方法,触发类型错误。

解决方案

  • 检查环境变量配置:确保项目根目录存在.env.local文件,且变量配置正确:
    UPSTASH_REDIS_URL="你的Upstash Redis实例URL"
    UPSTASH_REDIS_TOKEN="你的Upstash Redis访问令牌"
    
  • 重启开发服务器:修改环境变量后必须重启Next.js开发服务器,否则新变量不会生效。
  • 验证变量加载情况:在代码中添加日志打印,确认变量是否成功加载:
    console.log("Redis URL:", process.env.UPSTASH_REDIS_URL);
    console.log("Redis Token:", process.env.UPSTASH_REDIS_TOKEN);
    
    如果输出为undefined,检查.env.local文件路径是否正确、变量名拼写是否无误。
  • 注意组件类型:Upstash Redis连接逻辑应放在服务器组件或API路由中,无需给环境变量添加NEXT_PUBLIC_前缀(该前缀仅用于客户端组件访问的变量)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 18:42:44