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/