【发布时间】:2015-10-02 09:44:34
【问题描述】:
我有一个在本地完美运行的 Meteor 应用程序,但是当我部署到 meteor.com 时,一种方法将无法运行。所有其他方法都运行良好。
这是相关代码:
客户端:按钮单击以将公司添加到数组
Template.ValuationTableComps.events ({
'submit form': function(e) {
e.preventDefault();
var valuationId = this._id;
var selection = {
valuationSelections: $(e.target).find('[name=selectionComp]').val()};
Valuations.update(valuationId, {$addToSet: selection}, function () {});
}
});
客户端:按钮单击以根据上面的选择重新运行数组
Template.ValuationCalc.events({
'click #agg': function(e) {
e.preventDefault();
var valuationId = this._id;
var valuationSelections = this.valuationSelections;
Meteor.call('valuationAggregate', valuationId, valuationSelections, function (error, result) {});
}
});
Lib:运行聚合并将结果插入新集合的方法
Meteor.methods({
valuationAggregate: function(valuationId, valuationSelections) {
if (Meteor.isServer) {
check(valuationId, String);
check(valuationSelections, Array);
var pipelineSelections = [
//build pipeline//
];
var results = Companies.aggregate(pipelineSelections);
results.forEach(function(valuationResults) {
ValuationResults.update({valuationId: valuationId}, valuationResults, {upsert: true});
});
}
}});
在本地运行时一切正常。我可以在客户端和服务器上 console.log valuationId、valuationSelections 和 ValuationResults.find({valuationId:valuationId}).fetch() 并且都返回正确的结果。
但是,当我部署到 meteor.com 时,该方法不会运行。在我的浏览器控制台中,我看到了valuationId 和valuationSelections。但是,ValuationResults 查询返回 [ ]。
我在 ValuationResults 中有可以在浏览器控制台中看到的虚拟数据,因此集合很好。但我不明白为什么该方法可以在本地工作,但不能在部署时工作。这是唯一不起作用的,其他都很好。谢谢。
【问题讨论】:
-
@JeremyK,非常感谢,我能够根据您的建议看到错误,添加分辨率作为答案。
标签: javascript meteor web-deployment