我有一个NodeJS
(v5.0.0),Express
和React
应用程序。
我插入了一些同构,因此我的一些React
应用程序组件都已加载到NodeJS
中。
服务器崩溃,并在我的ReferenceError: Set is not defined
个存储之一中出现错误:Alt
:
import alt from '../alt';
import NewProjectActions from '../actions/NewProjectActions';
import LoginStore from './LoginStore';
import { Base64 } from 'js-base64';
import limits from '../../limits';
class NewProjectStore {
constructor() {
this.bindActions(NewProjectActions);
//State
this.activeStage = 1;
this.projectID = null;
this.projectName = '';
this.hasActiveComponentFinished = false;
this.isLoading = false;
this.assessment = [];
this.selectedClasses = [];
this.assignmentsUploaded = new Set(); <------ THIS LINE FAILS
The page goes on........
我尝试用
Map
替换它,它也崩溃了。奇怪的是,您可以看到我正在使用ES6
import
,并且运行良好。我还检查了
NodeJS
Docs,它表明Harmony集合随NodeJS
一起提供,而无需任何运行时标志。我刚刚更新了我的
Babel
,所以也许与它有关。更新:详细说明一下,我开始使用
Require Hooks
。有人有主意吗?
不用说我已经浏览过Google,却一无所获。
谢谢你的帮助!
更新:我已经尝试在我的
Set
页面中使用server.js
并成功了。看来问题确实是Babel
经过这些页面,而不是NodeJS
。我仍然不知道为什么它不同意ES6系列。
这是完整的错误堆栈跟踪:
ReferenceError: Set is not defined
at Store.NewProjectStore (NewProjectStore.js:18:36)
at new Store (/home/ec2-user/projects/peer_reviews/node_modules/alt/lib/store/index.js:155:73)
at Object.createStoreFromClass (/home/ec2-user/projects/peer_reviews/node_modules/alt/lib/store/index.js:175:15)
at Alt.createStore (/home/ec2-user/projects/peer_reviews/node_modules/alt/lib/index.js:129:77)
at Object.<anonymous> (NewProjectStore.js:99:20)
at Module._compile (module.js:456:26)
at loader (/home/ec2-user/projects/peer_reviews/node_modules/babel-register/lib/node.js:130:5)
at Object.require.extensions.(anonymous function) [as .js] (/home/ec2-user/projects/peer_reviews/node_modules/babel-register/lib/node.js:140:7)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/home/ec2-user/projects/peer_reviews/app/routes.js:17:24)
at Module._compile (module.js:456:26)
at loader (/home/ec2-user/projects/peer_reviews/node_modules/babel-register/lib/node.js:130:5)
at Object.require.extensions.(anonymous function) [as .js] (/home/ec2-user/projects/peer_reviews/node_modules/babel-register/lib/node.js:140:7)
最佳答案
我相信与Babel
的Require Hooks
有关的错误。 docs说它更适合简单使用,并且由于Babel 6
太新了,我想这只是一个错误。
我通过切换到从命令行激活Babel
来修复它。
在here中可以找到有关以各种方式激活Babel
的说明。
祝大家好运。
关于javascript - NodeJS 5中未定义和谐集合,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34877037/