首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Orion生成的模型连接到Meteor应用程序

问将Orion生成的模型连接到Meteor应用程序
EN

Stack Overflow用户
提问于 2015-10-08 08:50:57
回答 1查看 122关注 0票数 0

我使用orion generate model创建了一个名为Events的模型。然后,我将其插入到Mongo DB控制台中的模型中。我无法从其他地方访问该模型,因为当我尝试实例化一个集合对象时,我被告知一个名为Events的模型已经存在,这是因为我的Events.js文件如下所示:

代码语言:javascript
复制
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文件如下所示:

代码语言:javascript
复制
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
            }
        });
    }
});
}

我的问题基本上可以归结为,如果我的mongo集合是在Events.js中创建的,我如何将对它的引用存储在header.js的变量中?Orion没有很好的文档集,meteors也缺少一些地方,所以这有点不透明。

EN

回答 1

Stack Overflow用户

发布于 2015-10-08 10:48:41

tldr:从header.js文件中删除第一行

如果您更仔细地查看回溯,它告诉您事件模型已经存在,您将看到它正被header.js文件的第1行抛出。这是因为当加载此文件时,已经定义了Events变量,因为它是在Events.js中定义的全局变量的名称,并且已经在当前文件中(以及Events.js执行的所有位置)中可用。

对于大多数项目,最佳实践是在一个同时在客户端和服务器上执行的文件中全局定义您的集合。然后,您的所有其他文件都可以使用此变量引用集合。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33004836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档