无法在Meteor的流星客户端js中获取我的收藏数据

时间:2016-06-07 17:45:35

标签: mongodb meteor meteor-blaze

我在客户端js编写了以下代码:

var resolutionsQ;
Template.body.onCreated(function bodyOnCreated() {
    resolutionsQ = new Mongo.Collection("res");
});

Template.body.helpers({
    resolutions: function() {
        var res = resolutionsQ.find({});
        console.log(res);
      return resolutionsQ.find({});
    }
});

然后在我的项目文件夹(在终端中),我写道:

meteor mongo

mongo db控制台启动后,我想:

db.res.insert({title: "hello #1", createdAt: new Date()});

这也有效。

当我写这篇文章时,我的前端应用程序显示了所有内容。然后我关闭了我的电脑,过了一段时间再打开它,试图运行我的流星应用程序。现在我什么也没看到,我在服务器控制台或浏览器控制台中都没有出错。我当时不知道出了什么问题。

请帮忙。

1 个答案:

答案 0 :(得分:1)

您通过仅在客户端代码中定义集合来创建client-side collection。需要在两者服务器和客户端上定义集合,以便将文档持久保存到数据库中。

快速解决方案是创建一个共享文件,如lib/collections/resolutions.js,其中包含:

Resolutions = new Mongo.Collection("resolutions");

使用新式导入机制,您将创建一个类似imports/api/resolutions/resolutions.js的文件,其中包含:

import { Mongo } from 'meteor/mongo';

export const Todos = new TodosCollection('Todos');

有关详细信息,请参阅指南的this section