ReferenceError:TextEncoder 没有用猫鼬定义 Node.js

Posted

技术标签:

【中文标题】ReferenceError:TextEncoder 没有用猫鼬定义 Node.js【英文标题】:ReferenceError: TextEncoder is not defined Node.js with mongoose 【发布时间】:2021-10-31 01:50:44 【问题描述】:

问题似乎出在 mongoose 和 mongodb 包上,因为它可以正常工作

mongoose.connect('mongodb+srv://mydb:<password>@cluster0.w1opr.mongodb.net/test?retryWrites=true&w=majority');

被移除 它也适用于 repl.it 云环境 这是我的代码

var express = require('express');
var ejs = require('ejs');
var app = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
mongoose.connect('mongodb+srv://mydb:<password>@cluster0.w1opr.mongodb.net/test? 
retryWrites=true&w=majority');
app.set('view engine','ejs')
app.use(bodyParser.urlencoded(extended: true));
.
.
.
app.listen(3000,function()
console.log('Server is running on port 3000');
);

【问题讨论】:

【参考方案1】:

要在 Windows 升级到最新版本的 Node.js 时消除此错误,请访问此站点 https://nodejs.org/en/download/ 并下载最新版本的 Node.js,否则如果您不想升级到最新版本,那么您可以通过在 node_modules/whatwg-url/dist/encoding.js 的文件顶部添加此行来消除此错误:

const TextDecoder, TextEncoder = require("util");

【讨论】:

【参考方案2】:

实际上 mongoose 6 需要 Node 12 或更高版本,所以这是预期的行为。 Mongoose 6 不支持 Node 10。因此更新 Node 版本将解决此问题。它还通过将 mongoose 版本降级到 5 来解决问题。

【讨论】:

【参考方案3】:

检查您的节点版本,如果它低于 12,它将无法工作,如果是这种情况,更新节点应该可以完成这项工作。你也可以降级你的猫鼬版本。

Mongoose github 页面上有一个问题已关闭。 https://github.com/Automattic/mongoose/issues/10638

【讨论】:

以上是关于ReferenceError:TextEncoder 没有用猫鼬定义 Node.js的主要内容,如果未能解决你的问题,请参考以下文章

ReferenceError:未定义 DartObject

ReferenceError:未定义提取

Rails:ReferenceError:未定义谷歌

ReferenceError:变量未定义

JavaScript Uncaught ReferenceError: jQuery is not defined;未捕获的 ReferenceError:$ 未定义 [重复]

ReferenceError:找不到变量