簡體   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