繁体   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