在调用数据之前,您需要确保您的订阅已完成。
流星数据是通过网络发送的,所以当你的 javascript/html 被发送时,浏览器还没有被告知从服务器下载数据。
有两种方法可以解决这个问题:
如果您尚未达到在应用中使用订阅的阶段,您可以使用 Deps.autorun
使用部门
Deps.autorun(function() {
var subscribed = Session.equals("subscribed",true);
if(!subscribed && Posts.find().count()) {
Session.set("subscribed",true);
var vtop = Posts.findOne({},{sort: {created_at:-1},reactive:false}).created_at;
console.log(vtop)
}
或等待订阅完成
服务器js
Meteor.publish("posts", function() {
return Posts.find();
}
客户端js
Meteor.subscribe("posts",function() {
var vtop = Posts.findOne({},{sort: {created_at:-1},reactive:false}).created_at;
console.log(vtop)
});
如果使用发布/订阅,您需要删除autopublish
包,但如果这样做,您还需要发布您的其他集合,否则浏览器将看不到它们。
有关如何使用发布的更多信息,请参阅文档:http ://docs.meteor.com/#publishandsubscribe
各方示例也使用发布并有一个截屏:http: //meteor.com/examples/parties