[英]Cannot get meteor.js to return mongo collection
因此,我試圖將mongoDB數據庫值返回到Meteor.js項目中的模板。 我正在使用的代碼如下。
Template.ResourceManager.helpers({
BoosterOneFuel : function(){
return resources.findOne({system : "booster1"}).fuel;
}
});
但是,這始終返回null。 當我嘗試向其發出警報時,警報還會顯示此值為null。 當我在運行流星mongo的控制台中運行以下代碼時,Mongo可以找到它:
db.Resources.findOne({system : "booster1"}).fuel;
但是流星不能。 (這是在本地主機上,因此流星mongo應該會影響流星的數據庫)
我認為在mongo之前加載流星沒有問題,因為以下操作仍然無效:
if(resource.find({system : "booster1"}))
alert(resources.findOne({system : "booster1"}).fuel);
有人知道這是怎么回事嗎? 提前致謝。
假設該集合實際上稱為resources
-即您具有如下所示的內容:
resources = new Mongo.Collection('Resources');
聽起來您只需要將文檔發布到客戶端即可:
服務器/publishers.js
Meteor.publish('resources', function() {
return resources.find();
});
客戶端/subscriptions.js
Meteor.subscribe('resources');
當然,訂閱可以在模板或路由器中進行,而不是在全局中進行,但這不在此問題的范圍內。
還要注意,您應該為您的助手添加一個防護 。 例如:
Template.ResourceManager.helpers({
BoosterOneFuel : function() {
var b1 = resources.findOne({system : "booster1"});
return b1 && b1.fuel;
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.