我在客户端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()});
这也有效。
当我写这篇文章时,我的前端应用程序显示了所有内容。然后我关闭了我的电脑,过了一段时间再打开它,试图运行我的流星应用程序。现在我什么也没看到,我在服务器控制台或浏览器控制台中都没有出错。我当时不知道出了什么问题。
请帮忙。
答案 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。