const utf8Encoder = new TextEncoder(); 在 Node.js 中

11 javascript compiler-errors nodes node.js

我正在尝试使用 mongodb 所以我安装了 mongoose 包

但问题是当我这样写的时候

const express = require("express");
const dotenv = require("dotenv");
const mongoose = require("mongoose"); //getting error here
Run Code Online (Sandbox Code Playgroud)

它向我显示这样的错误

const utf8Encoder = new TextEncoder();
                    ^

ReferenceError: TextEncoder is not defined
Run Code Online (Sandbox Code Playgroud)

如果我评论 mongoose 行,我不会收到任何错误,但即使我检查了我的节点版本为 16.5.0,我也需要使用它,我尝试查找发生相同错误的旧帖子,但它对我来说无法理解,有什么帮助吗?旧帖子链接 在此处输入链接描述

如何修复此错误

Aak*_*ash 19

在node_modules>whatwg-url>dist中打开encoding.js文件夹

并写下这段代码

"use strict";
var util= require('util');
const utf8Encoder = new util.TextEncoder();
const utf8Decoder = new util.TextDecoder("utf-8", { ignoreBOM: true });
Run Code Online (Sandbox Code Playgroud)

代替

"use strict";
const utf8Encoder = new TextEncoder();
const utf8Decoder = new TextDecoder("utf-8", { ignoreBOM: true });
Run Code Online (Sandbox Code Playgroud)

你所缺少的只是这一小部分,包括 utils

var util= require('util');
const utf8Encoder = new util.TextEncoder();
const utf8Decoder = new util.TextEncoder("utf-8", { ignoreBOM: true });
Run Code Online (Sandbox Code Playgroud)


Rob*_*ans 5

这在我的小脚本文件的顶部对我有用。

"use strict";
const util = require('util');
global.TextEncoder = util.TextEncoder;
global.TextDecoder = util.TextDecoder;
Run Code Online (Sandbox Code Playgroud)