簡體   English   中英

無法獲取meteor.js返回mongo集合

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM