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

MongoDB中this.options = options ?? {};连接报错,同代码其他项目正常求解决

问题解决思路

为什么会报错?

你用的??是空值合并运算符,属于ES2020的新语法。当前MongoDB连接的项目运行环境(Node.js版本、编译工具配置)不支持这个语法,而其他能正常运行的项目环境已经兼容ES2020,所以出现差异。

具体解决办法

方法一:换成兼容旧环境的写法

直接把代码改成ES2020之前支持的逻辑:

// 精准判断null/undefined,保留0、空字符串等合法假值
this.options = (options !== null && options !== undefined) ? options : {};

// 如果不需要区分假值,也可以用更简洁的写法
this.options = options || {};

方法二:升级/配置环境支持新语法

  • Node.js项目:把Node.js版本升级到14.0.0及以上(这个版本开始原生支持??运算符)。
  • 用Babel编译的项目:安装@babel/plugin-proposal-nullish-coalescing-operator插件,在Babel配置文件里启用它,让编译器自动把新语法转成旧环境能识别的代码。
  • 前端构建项目:检查webpack、vite等工具的target配置,把目标环境设置为支持ES2020的版本,或者添加相应的转译插件。

方法三:对齐正常项目的配置

对比能正常运行的项目,检查以下内容:

  • Node.js版本号
  • Babel/TypeScript的配置文件(比如.babelrc、tsconfig.json)
  • 构建工具的环境目标设置

把当前项目的配置调整成和正常项目一致,问题就能解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 23:40:08