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

统一导入模块时出现TypeError: Cannot read properties of undefined(reading 'main')

问题原因分析

1. "Cannot read properties of undefined (reading 'main')" 错误原因

你的imports.ts存在两个致命问题,导致模块无法正常导出:

  • 未导入MongoConnect就直接调用MongoConnect(),会触发ReferenceError: MongoConnect is not defined错误,中断模块加载流程;
  • 定义_imports对象时,db属性的末尾缺少闭合的},存在语法错误。

这两个问题会导致Node.js无法正确解析imports.ts,最终导出的是undefined。当another_file.ts导入该模块后,尝试访问undefined.main就会触发你看到的错误。

至于app.ts中看似正常,大概率是你测试app.ts时,imports.ts还没有引入MongoConnect相关代码,或者手动修复过语法错误,后续修改imports.ts时引入了问题但未重新测试app.ts。

2. process.env.SECRET 为 undefined 的原因

这个问题是模块加载失败的连锁反应:
dotenv.config()是在imports.ts的_imports.main对象中执行的,但由于上述的语法/引用错误,imports.ts的代码执行被中断,dotenv.config()根本没机会完成执行,自然无法将.env文件中的环境变量注入到process.env中。

另外补充一种可能:如果你的项目运行时工作目录不是项目根目录(比如某些IDE的运行配置错误),dotenv.config()会找不到根目录下的.env文件,但结合app.ts能正常读取的情况,这种可能性较低,核心原因还是模块加载失败导致dotenv未执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 03:09:52