const utf8Encoder = new TextEncoder();在节点js
const utf8Encoder = new TextEncoder(); in Node js
我正在尝试使用 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
我试着寻找一个旧的 post,那里发生了同样的错误,但我无法理解它有什么帮助吗?旧 post link
enter link description here
如何修复这个错误
在 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 });
你所缺少的就是包含实用程序的这一小部分
var util= require('util');
const utf8Encoder = new util.TextEncoder();
const utf8Decoder = new util.TextEncoder("utf-8", { ignoreBOM: true });
在 node_modules
中打开您的 encoding.js 文件夹
- 打开node_modules
- 找到 whawg-url 文件夹并打开。
- 搜索 dist 文件夹 - 在那里,您会找到 encoding.js 文件夹
- 通过 VS Code 或您选择的任何 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 });
那你就可以开始了。
这似乎是旧节点版本的问题。您需要使用最新的节点。如果您使用 nvm
类型
nvm use node
注意:要使用 nvm
下载最新节点,请使用此命令
nvm install --lts
这是因为您使用的是旧版本的节点,如果您使用 apt install node 安装节点,您得到的是旧版本。所以你需要升级到最新版本的节点。
这在我的小脚本文件的顶部对我有用。
"use strict";
const util = require('util');
global.TextEncoder = util.TextEncoder;
global.TextDecoder = util.TextDecoder;
这是与 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
我正在尝试使用 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 我试着寻找一个旧的 post,那里发生了同样的错误,但我无法理解它有什么帮助吗?旧 post link enter link description here
如何修复这个错误
在 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 });
你所缺少的就是包含实用程序的这一小部分
var util= require('util');
const utf8Encoder = new util.TextEncoder();
const utf8Decoder = new util.TextEncoder("utf-8", { ignoreBOM: true });
在 node_modules
中打开您的 encoding.js 文件夹- 打开node_modules
- 找到 whawg-url 文件夹并打开。
- 搜索 dist 文件夹 - 在那里,您会找到 encoding.js 文件夹
- 通过 VS Code 或您选择的任何 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 });
那你就可以开始了。
这似乎是旧节点版本的问题。您需要使用最新的节点。如果您使用 nvm
类型
nvm use node
注意:要使用 nvm
下载最新节点,请使用此命令
nvm install --lts
这是因为您使用的是旧版本的节点,如果您使用 apt install node 安装节点,您得到的是旧版本。所以你需要升级到最新版本的节点。
这在我的小脚本文件的顶部对我有用。
"use strict";
const util = require('util');
global.TextEncoder = util.TextEncoder;
global.TextDecoder = util.TextDecoder;
这是与 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