[英]Connecting an Orion-generated model to Meteor app
我使用了orion generate model
来创建一个称为“事件”的模型。 然后,我在Mongo DB控制台中将该模型插入。 我无法从其他地方访问该模型,因为当我尝试实例化Collection对象时,我被告知已经存在一个名为Events的模型,这是因为我的Events.js文件如下所示:
Events = new Mongo.Collection('Events');
Events.attachSchema(
new SimpleSchema({
name: {
type: String
},
location: {
type: String
},
dateTime: {
type: Date
},
description: {
type: String
},
eventType: {
type: String
},
createdAt: {
type: Date,
denyUpdate: true
}
})
);
我的header.js文件如下所示:
var Events = new Meteor.Collection('Events');
if (Meteor.isClient) {
// This code only runs on the client
Template.body.helpers({
events: function() {
var evs = Events.find({}, {fields: {'name':1}});
return Events.find({}, {
sort: {
createdAt: -1
}
});
}
});
}
我的问题本质上可以归结为:如果在Events.js中创建了对mongo集合的引用,该如何将它存储在header.js中的变量中? Orion的文档集不多,流星雨也缺少位置,因此有点不透明。
tldr:从header.js文件中删除第一行
如果您更仔细地查看告诉您事件模型已经存在的回溯,您会看到header.js文件的第1行抛出了它。这是因为加载此文件时,已经定义了Events变量,因为它是Events.js中定义的全局变量的名称,并且在此当前文件(以及Events.js执行的所有位置)中已经可用。
对于大多数项目,最佳实践是在客户端和服务器上均执行的文件中全局定义集合。 然后,所有其他文件都可以使用此变量引用集合。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.