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

引入mongoose时报ReferenceError: TextEncoder is not defined如何解决

问题根因

该报错和本地安装的MongoDB服务无关,是Mongoose版本与当前Node.js版本不兼容导致的:TextEncoder 是Node.js v11.0.0才默认全局挂载的内置API,如果你使用的Node.js版本低于v11,或者安装的Mongoose版本超出了当前Node.js的支持范围,就会触发这个报错。

解决方案

  • 方案1:升级Node.js版本(推荐)
    首先执行node -v查看本地Node.js版本,根据你使用的Mongoose版本升级到符合要求的Node.js版本即可:
    • Mongoose 6.x要求Node.js >= 12.0.0
    • Mongoose 7.x要求Node.js >= 14.0.0
    • Mongoose 8.x要求Node.js >= 16.20.1
      建议直接升级到Node.js 18.x/20.x的长期支持(LTS)版本,兼容性最好。
  • 方案2:降级Mongoose版本
    如果暂时无法升级Node.js版本,可以根据当前Node.js版本安装兼容的Mongoose版本,比如Node.js v10环境可以安装Mongoose 5.x:
    npm install mongoose@5
  • 方案3:临时补丁(应急使用,不推荐长期用)
    在引入mongoose之前手动把TextEncoder挂载到全局对象,修改代码如下:
    const { TextEncoder } = require('util');
    global.TextEncoder = TextEncoder;
    const mongoose = require('mongoose');
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:42:03