我有一個本地運行完美的Meteor應用程序,但是當我部署到meteor.com時,一種方法將無法運行。所有其他方法運行良好。方法在本地運行良好,在部署時不會運行(在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:運行聚合和upser的方法t結果到新的集合
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中有虛擬數據,我可以在瀏覽器控制檯中看到這樣的集合。但我不明白爲什麼這個方法可以在本地使用,但不能部署。這是唯一不起作用的,所有其他都很好。謝謝。
從這裏開始:http://stackoverflow.com/questions/26028282/how-to-monitor-meteor-com-server-side-logs – JeremyK
@JeremyK,非常感謝,我能夠看到使用您的錯誤建議,增加決議作爲答案。 – Bren