我正在完成一个流星教程:https://www.meteor.com/tutorials/blaze/collections
我定义了一个集合,
Tasks = new Mongo.Collection("tasks");
我添加了两个项目,一个直接来自meteor mongo命令行,另一个使用:
Tasks.insert({ text: "Testing JS", createdAt: new Date() });
以下是在后端运行db.tasks.find()的结果:
{ "_id" : ObjectId("559e9569abbb64fe1d5fd89a"), "text" : "Hello world!", "createdAt" : ISODate("2015-07-09T15:38:17.742Z") }
{ "_id" : "obRN8Rcssa9yJqXzA", "text" : "Testing JS", "createdAt" : ISODate("2015-07-09T17:00:13.285Z") }
但是当我运行Tasks.find({})时;在前端,我得到空的结果。它只给了我一个很长的JSON,但没有来自数据库的数据。
答案 0 :(得分:3)
在meteor中,您可以通过调用游标上的fetch来查看游标返回的文档。例如:
console.log(Tasks.find().fetch());
答案 1 :(得分:2)
查看您的代码,您不会发布任何内容:
if (Meteor.isServer) {
Meteor.publish("tasks", function () {
console.log(Tasks.find());
});
}
需要
if (Meteor.isServer) {
Meteor.publish("tasks", function () {
console.log(Tasks.find());
return Tasks.find();
});
}
或者只是在使用自动发布时将其删除。
答案 2 :(得分:0)
您是否在前端.js中导入了集合的.js文件?
import { Tasks } from '/your_path_goes_here/filename_goes_here.js';
如果不导入它并在下面尝试,
添加发布内容
if (Meteor.isServer) {
Meteor.publish('tasks', function task() {
return Task.find({});
});
}
在Front-End .js中订阅
Meteor.subscribe('task');