TextEncoder未定义。使用Node.js连接到WSL2上的MongoDB。

5

我正在尝试在Ubuntu的wsl2实例上运行一个简单的MERN应用程序。我正在遵循这个指南。这是我在server.js中的代码(它与指南中的代码略有不同,因为body-parser已被弃用。使用来自这篇帖子的建议,我已更改了那些方法)。

const express = require("express");
const mongoose = require("mongoose");

// Setup express app
const app = express();

app.use(
    express.urlencoded({
        extended: false
    })
);

app.use(express.json());

// Configure Mongo
const db = "mongodb://localhost/313-demo-mern-db";

// Connect to Mongo with Mongoose
mongoose
    .connect(
        db,
        { useNewUrlParser: true }
    )
    .then(() => console.log("Mongo connected"))
    .catch(err => console.log(err));

// Specify the Port where the backend server can be accessed and start listening on that port
const port = process.env.PORT || 5000;
app.listen(port, () => console.log(`Server up and running on port ${port}.`));

我运行着一个MongoDB数据库,当前它在“等待在27017端口上的连接”。当我运行命令node server.js时,出现了错误。

/home/NAME/learnreact/MERN-demo/node_modules/whatwg-url/dist/encoding.js:2
const utf8Encoder = new TextEncoder();
                    ^

ReferenceError: TextEncoder is not defined
    at Object.<anonymous> (/home/NAME/learnreact/MERN-demo/node_modules/whatwg-url/dist/encoding.js:2:21)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/home/NAME/learnreact/MERN-demo/node_modules/whatwg-url/dist/url-state-machine.js:5:34)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
1个回答

4
我今天遇到了同样的错误。升级节点到最新版本解决了我的问题。 您可以参考https://askubuntu.com/a/480642/1267099 更新节点。 编辑:更新到最新版本(不是当前稳定版本)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接