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

VPS上运行Node.js项目引用mongodb时报TextEncoder未定义错误如何解决

问题原因

该报错由VPS上的Node.js版本过低导致:TextEncoder是Node.js v11.0.0版本才正式加入全局作用域的内置API,你本地开发环境的Node.js版本高于v11所以运行正常。你引入的高版本mongodb依赖包依赖whatwg-url库,后者会直接调用全局的TextEncoder,低版本Node环境下找不到这个API就会抛出异常。

可用解决方案
  • 方案1(推荐):升级VPS上的Node.js版本
    将VPS的Node.js升级到v14.x及以上的LTS长期支持版本即可直接兼容所有新的依赖API,升级完成后删除node_modules目录重新安装依赖启动项目即可。
  • 方案2:手动添加API polyfill
    若暂时无法升级Node版本,可在项目入口文件(如app.js)的最顶部添加以下代码,手动将TextEncoder挂载到全局对象:
    const { TextEncoder, TextDecoder } = require('util');
    global.TextEncoder = TextEncoder;
    global.TextDecoder = TextDecoder;
    
  • 方案3:降级mongodb依赖版本
    若不想修改Node版本也不想加polyfill,可将mongodb依赖降级到3.x版本,该版本的mongodb不依赖需要高版本API的whatwg-url,执行以下命令安装即可:
    npm install mongodb@3
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 17:39:00