javascript - MeteorJS 集合未定义

标签 javascript node.js meteor npm

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。

最佳答案

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

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

我想你可能必须把你的任务放在 Meteor.startup(function() {..}) 中,它在 meteor 启动时运行,唯一的区别是它在所有文件已加载。

关于javascript - MeteorJS 集合未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20052059/

相关文章:

javascript - 使用 Jquery 的没有插件的顶部幻灯片菜单

javascript - 如何在 jsp 页面中显示代表 java servlet 执行的进度条

javascript - 立即通过 AJAX 重新加载一个 div,然后每 5 秒重新加载一次

php - Heroku 上的基本 Node.js 应用程序 - 免费发送电子邮件的方式?

javascript - Nock 不拦截 http 请求

javascript - 使用 gulp 4 .series 时,函数调用中的参数有何意义?

templates - 如何检查用户在 Meteor 中是否具有特定角色

javascript - 使用 REPLIT 创建我的第一个机器人,但总是错误 Discord.JS

javascript - 如何在 Meteor 中使用嵌入文档

javascript - Meteor 中的 ExecCommand 不起作用