gpt4 book ai didi

javascript - 方法在本地运行良好,部署时不会运行(在meteor.com上)

转载 作者:行者123 更新时间:2023-11-28 06:52:00 37 4
gpt4 key购买 nike

我有一个 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 valuationIdvaluationSelectionsValuationResults.find({valuationId:valuationId}).fetch()服务器并且都返回正确的结果。

但是,当我部署到meteor.com 时,该方法将无法运行。在我的浏览器控制台中,我看到 valuationIdvaluationSelections。但是,ValuationResults 查询返回 [ ]

我在 ValuationResults 中有虚拟数据,我可以在浏览器控制台中看到这些数据,因此集合没有问题。但我不明白为什么该方法在本地有效但在部署时无效。唯一不行的就是这个,其他都还好。谢谢。

最佳答案

已解决:

我能够运行meteor logs myApp并看到错误MongoError:异常:无效的运算符'$literal'。我的 $project 阶段包括 valuationId: {$literal:valuationId} 来向新文档添加新字段。我不知道为什么会抛出错误,但似乎有一个已知的 mongodb 问题:https://jira.mongodb.org/browse/RUBY-668 .

我将 $literal 从我的管道中取出,只是更新了现有的评估文档。现在在本地和部署时都可以正常工作。

关于javascript - 方法在本地运行良好,部署时不会运行(在meteor.com上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32879304/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com