mongodb 参考错误:TextEncoder未使用mongoose定义Node.js

aij0ehis  于 2022-12-22  发布在  Go
关注(0)|答案(5)|浏览(200)

问题似乎是与mongoose和mongodb包,因为它的工作正常时

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

它也可以在www.example.com云环境中正常工作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');
});
hrirmatl

hrirmatl1#

实际上,mongoose 6需要节点12或更高版本,因此这是预期行为。Mongoose 6不支持节点10。因此,更新节点版本将修复此问题。它还通过将mongoose版本降级到5修复此问题。

8fsztsew

8fsztsew2#

检查你的节点版本,如果低于12就不能工作,如果是这样的话,更新节点就可以了。你也可以降级你的mongoose版本。
Mongoose github页面上有一个问题已关闭。https://github.com/Automattic/mongoose/issues/10638

yebdmbv4

yebdmbv43#

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

const {TextDecoder, TextEncoder} = require("util");
mwg9r5ms

mwg9r5ms4#

对我来说,我使用的是UBUNUTU 20.04,因为@MuhammadTariq说我的节点版本是10,升级到16后,错误消失了。

soat7uwm

soat7uwm5#

使用测试时也有同样的问题。在我的jest配置中将testEnvironment设置为node修复了它(https://mongoosejs.com/docs/jest.html

module.exports = {
  testEnvironment: 'node'
};

相关问题