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

Mongoose+Next.js运行时报错TypeError:无法读取undefined的'Token'属性

问题解决方法

你遇到的报错本质是mongoose.models为undefined时直接读取其Token属性导致的,按以下步骤排查即可解决:

  • 修改Token模型的导出逻辑,增加空值判断,避免直接读取undefined的属性,将原导出代码:
export default mongoose.models.Token || mongoose.model('Token', TokenSchema);

修改为带可选链的兼容写法:

export default mongoose.models?.Token || mongoose.model('Token', TokenSchema);
  • 排查所有导入Token模型的文件,确认没有在标记了'use client'的客户端组件中导入该模型。Mongoose是服务端专属依赖,客户端运行环境不会初始化mongoose实例,自然不存在mongoose.models对象,会直接触发该报错。
  • 确认Token模型的导入时机,保证是在mongoose初始化连接逻辑执行之后再导入该模型,避免提前加载模型时mongoose实例还未完成挂载。

你之前的User模型没有触发报错,只是因为User模型的加载时机刚好都在mongoose初始化完成之后,没有触发mongoose.models为undefined的场景,并非User模型的代码存在特殊性。

内容的提问来源于stack exchange,提问作者Antonio Pavicevac-Ortiz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:45:05