我有一个Meteor应用程序,我在
中声明了一个集合imports/api/Dictionary.jsx
在该文件中:
export const dict = new Mongo.Collection('Dictionary');
然后导出它并尝试获取客户端文件夹中的数据:
import { Meteor } from 'meteor/meteor';
import {dict} from "../imports/api/Dictionary.jsx";
Meteor.startup(() => {
console.log(dict.find().fetch());
});
但是在控制台中没有显示任何内容。我已尝试在服务器和侧面导入和获取,一切正常。我还安装了autopublish包。
答案 0 :(得分:1)
即使使用自动发布,在客户端启动时,该集合也不会立即。根据集合的大小,可能需要一段时间。正常使用显式pub-sub时,您可以等到订阅 ready ,然后再尝试访问它。
使用自动发布,您可以尝试:
Meteor.startup(() => {
Meteor.setTimeout(() => {
console.log(dict.find().fetch());
},
1000);
);
});
如果你的收藏很大,你可能不得不使用大于1000的数字。
真正的答案是:
ready()
答案 1 :(得分:0)
订阅需要一点时间才能从服务器接收文档。几秒钟后再试一次。
设置自己的出版物后,一旦订阅收到出版物的完整快照,您就可以使用就绪回调来执行操作。
答案 2 :(得分:0)
我会做什么,而不是导入和导出是以下
在客户端或服务器文件夹中不存在的文件
this.Dictionary = new Mongo.Collection(“Dictionary”)
在Meteor中,您可以声明全局变量