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