MeteorJS集合没有定义

superpack是一个使用_wrapAsync变形的npm包。 为什么插入到集合UserSession会导致错误,指出集合未定义?

服务器/助理/ b.js

 // Init var SUPERPACK = Meteor.require('superpack'); var superpack = SUPERPACK(a,b); // Get Info superpack.getInfoSync = Meteor._wrapAsync(superpack.getInfo.bind(superpack)); var data = superpack.getInfoSync(); UserSession.insert({ 'account': data }); 

collections/ UserSession.js

 UserSession = new Meteor.Collection('user_sessions'); 

错误(服务器端):

 ReferenceError: UserSession is not defined 

使用仪表v0.6.6.3。

你必须小心文件加载顺序。 深度嵌套的文件首先加载(请参阅在meteor文档中构build您的应用程序)。

所以你的助手在集合js之前加载。 通常这没问题,但是看起来你在Meteor启动的时候插入文件(也就是说当没有加载所有的文件的时候)。

我认为你可能不得不把你的任务放在Meteor.startup(function() {..})当meteor启动时运行,唯一的不同就是它在所有的文件加载完成后才会执行。