在WebStorm中写Node代码引入mongoose报错“ReferenceError: TextEncoder is not defined“

异常

在node中引入mongoose,使用webstorm工具执行下面的代码报错:

const utf8Encoder = new TextEncoder();
                    ^

ReferenceError: TextEncoder is not defined
    at Object.<anonymous> (D:\NodeJs\node-demo\blog\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> (D:\NodeJs\node-demo\blog\node_modules\whatwg-url\dist\url-state-machine.js:5:34)
    at Module._compile (internal/modules/cjs/loader.js:778:30)

错误代码

注意,这里是已经安装了mongoose包的的情况下。

// 引入mongoose
var mongoose = require('mongoose');
console.log(mongoose);

原因

node版本太低导致的。使用node --version命令查看当前的node版本。
在这里插入图片描述

解决

第一步,执行npm install -g n命令安装n
在这里插入图片描述如果执行上面的命令安装不成功,则执行如下命令npm install -g n --force命令强制安装,就会安装成功。
在这里插入图片描述
如果是Linux系统需要更新node版本,则执行如下命令更新:

n latest #安装node最新版本

n stable #安装node稳定版本

n 10.0.0 #安装指定版本号的node

如果是Windows系统需要更新node版本请参考:执行n stable命令在Windows系统中更新node版本报错“‘bash‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。“

然后在webstorm中,选择File——>Settings...
在这里插入图片描述
选择Language & Frameworks下的Node.js and NPM,将Node interpreter指定为刚才更新的新版本的node.exe路径
在这里插入图片描述保存后,继续执行这段代码,就不会报错了。
在这里插入图片描述注意,我在更新node版本文章中最后将新版本的node.exe覆盖了老版本的node.exe,所以node.exe目录又变成了原来的,那么WebStorm的Node interpreter路径也该改为原来的情况:
在这里插入图片描述同样执行上面的代码不会报错,因为已经更新node版本成功了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值