繁体   English   中英

将Orion生成的模型连接到Meteor应用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM