javascript const utf8 Encoder =新的文本编码器();在节点js中

piah890a  于 2023-02-15  发布在  Java
关注(0)|答案(7)|浏览(150)

我正在尝试使用mongodb,因此安装了mongoose包
但问题是当我这样写的时候

const express = require("express");
const dotenv = require("dotenv");
const mongoose = require("mongoose"); //getting error here

它显示了这样的错误

const utf8Encoder = new TextEncoder();
                    ^

ReferenceError: TextEncoder is not defined

如果我评论mongoose线,我没有得到任何错误,但我需要使用这个,即使我检查了我的节点版本16.5.0,我试图寻找一个老职位发生同样的错误,但它无法理解我有任何帮助?旧职位链接enter link description here
如何修复此错误

6kkfgxo0

6kkfgxo01#

在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 });

代替

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

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

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

dvtswwa32#

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

"use strict";
const util = require('util');
global.TextEncoder = util.TextEncoder;
global.TextDecoder = util.TextDecoder;
hrirmatl

hrirmatl3#

这是node.js版本的兼容性问题,请升级node.js版本,然后重新安装节点包。
升级您的版本:v16.14.2
建议不要修改node_modules文件夹中的文件
您可以使用NVM来管理多个node.js版本,以下是安装指南:https://www.digitalocean.com/community/tutorials/how-to-install-node-js-on-ubuntu-20-04

wixjitnu

wixjitnu4#

打开node_modules中的encoding.js文件夹
1.打开节点模块
1.找到whawg-url文件夹并打开。
1.搜索dist文件夹-在那里,您将找到encoding.js文件夹
1.通过VS代码或您选择的任何IDE打开。
替换以下代码行

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

用这个

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

那你可以走了。

nukf8bse

nukf8bse5#

这似乎是旧节点版本的问题。您需要使用最新节点。如果您使用nvm类型

nvm use node

注意:要使用nvm下载最新节点,请使用以下命令

nvm install --lts
cxfofazt

cxfofazt6#

这是因为您使用的是旧版本的node,如果您使用apt install node安装node,则会得到旧版本。因此,您需要升级到最新版本的node。

jvidinwx

jvidinwx7#

您只需要package.json中的库的兼容节点版本。我遇到了相同的错误,我犯的错误是,我使用nvm,我运行npm install与节点v12.x.x出于某种原因nvm没有设置当前版本,它设置v10.x.x当我返回到项目文件夹。

$ rm -rf node_modules
# use another way to switch to the correct version if not using nvm
$ nvm use v12.x.x # Switch node version to v12.x.x
$ npm install
# then restart the server

如果你使用nvm,并且你想在进入工程文件夹时自动设置工程节点版本,只要按照这个说明操作即可。

相关问题