【问题标题】:MeteorJS Collection is not definedMeteorJS Collection 未定义
【发布时间】:2013-12-01 20:31:49
【问题描述】:

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

server/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

使用 Meter v0.6.6.3。

【问题讨论】:

  • @Tarang b.js 中的代码应该在服务器启动时运行。尝试了您提出的输入Meteor.startup 的建议,它有效!

标签: javascript node.js meteor npm


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 2016-02-26
    • 2016-06-02
    • 1970-01-01
    • 1970-01-01
    • 2017-08-09
    • 1970-01-01
    相关资源
    最近更新 更多