gpt4 book ai didi

mongodb - meteor 更新 - 集合不更新,即使它报告它更新

转载 作者:可可西里 更新时间:2023-11-01 10:00:31 25 4
gpt4 key购买 nike

我正在尝试更新一个集合,但出于某种原因,即使它跟踪为已成功,但当我在我的控制台中查看该集合时,它似乎没有更新。

这是我正在做的:

1) 从客户端上的 javascript 函数调用更新函数。所有值都被正确传递:

Meteor.call('minisiteUpdater',vLayout,vColour,vBG,vHFont,vBFont,vFontColour);

2)函数本身(定义在Meteor.methods中)如下。请注意,当我在控制台中记录所有内容时,所有值都已成功传递到函数中,并且我从 session var 中获取的 siteID 也已正确设置。问题是控制台正在记录“成功”,这向我表明更新已经成功,但是当我之后在控制台中输入 Therapistminisite.find().fetch() 并查看应该更新的集合项时,它有未更新。

minisiteUpdater: function(vLayout,vColour,vBG,vHFont,vBFont,vFontColour){
var updates = { $set: {
layout: vLayout,
colour: vColour,
backgroundimage: vBG,
headingfont: vHFont,
bodyfont: vBFont,
fontcolour: vFontColour
}};

var siteID = Session.get("currentSiteBuilderID");

Therapistminisite.update(siteID, updates, function (error) {
if (error){
console.log(error);
}
else{
console.log("success");
}
});
},

最后,就在控制台中记录“成功”之后,我还收到以下错误消息:“调用方法‘minisiteUpdater’时出错:内部服务器错误 [500]”。

有人有什么想法吗?

最佳答案

如果那是服务端和客户端的方法定义,您不能在服务器端调用 Session.get,因此该方法在浏览器中调用时成功,但在服务器端调用时失败。如果查看服务器控制台,您应该会看到服务器错误:Session is not defined 对应于浏览器控制台中的 500 错误。

尝试将 siteId 添加为方法参数,并删除从 session 中获取它的行:

minisiteUpdater: function(vLayout,vColour,vBG,vHFont,vBFont,vFontColour, siteID){
var updates = { $set: {
layout: vLayout,
colour: vColour,
backgroundimage: vBG,
headingfont: vHFont,
bodyfont: vBFont,
fontcolour: vFontColour
}};

Therapistminisite.update(siteID, updates, function (error) {
if (error){
console.log(error);
}
else{
console.log("success");
}
});
},

(删除这一行:var siteID = Session.get("currentSiteBuilderID");)

然后在客户端调用时传入Session.get("currentSiteBuilderID"):

Meteor.call(
'minisiteUpdater',
vLayout,
vColour,
vBG,
vHFont,
vBFont,
vFontColour,
Session.get("currentSiteBuilderID")
);

关于mongodb - meteor 更新 - 集合不更新,即使它报告它更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35743507/

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