MeteorJS集合未定义



superpack是一个使用_wrapAsync扭曲的npm包。为什么在集合UserSession中插入会导致错误,说明未定义集合?

服务器/helpers/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() {..})中,它在流星启动时运行,唯一的区别是它在加载了所有文件后才运行。

最新更新