在WebStorm中写Node代码引入mongoose报错“ReferenceError: TextEncoder is not defined“
Posted 二木成林
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在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版本成功了。
以上是关于在WebStorm中写Node代码引入mongoose报错“ReferenceError: TextEncoder is not defined“的主要内容,如果未能解决你的问题,请参考以下文章
WebStorm,使用 Node Supervisor(所以每次代码更改后不必重新启动)?
WebStorm JSDoc 类声明,用于使用 node.js 模块完成代码