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