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。

最佳答案

您必须注意文件加载顺序。首先加载深度嵌套的文件(请参阅流星文档中的“构建应用程序”)。

因此,您的助手在加载js之前先加载。通常这是可以的,但是看起来您是在Meteor启动时(即尚未加载所有文件时)插入文档。

我认为您可能必须将任务放在流星启动时运行的Meteor.startup(function() {..})中,唯一的区别是在所有文件加载完毕后才执行。

08-19 15:46