Parse platform Parse.com-.get()正在返回[object]?
我有关于解析的Parse platform Parse.com-.get()正在返回[object]?,parse-platform,parse-cloud-code,Parse Platform,Parse Cloud Code,我有关于解析的Posts和Topics。共有约20个不同的主题s-每个Post以数组关系存储最多5个主题 更新Post时,我需要检查分配给它的主题,并可能发送通知 所以我写了这个: Parse.Cloud.afterSave("Post", function(request) { Parse.Cloud.useMasterKey(); var postObject = request.object; var postTitle = postObject.get("tit
Post
s和Topic
s。共有约20个不同的主题
s-每个Post
以数组关系存储最多5个主题
更新Post
时,我需要检查分配给它的主题,并可能发送通知
所以我写了这个:
Parse.Cloud.afterSave("Post", function(request) {
Parse.Cloud.useMasterKey();
var postObject = request.object;
var postTitle = postObject.get("title");
var topics = postObject.get("topic");
var topicCount = topics.length;
console.log("Post with title " + postTitle + " has " + topicCount + " topics: " + topics);
// code continues to push logic,
// but already the log above is wrong, so I'll leave that off.
}
例如,如果我写了一篇标题为“保时捷瞄准特斯拉”的帖子,并给它一个单独的主题,即“技术”主题,我希望它能记录如下内容:
Post with title Porsche Takes Aim at Tesla has 1 topics: tech
但当我这样做时,它会记录:
Post with title Porsche Takes Aim at Tesla has undefined topics: [object Object]
我做错了什么?文档建议,当您使用数组字段的名称调用get
时,它应该返回一个JavaScript数组。相反,它似乎返回一个没有任何属性或内容的空白JavaScript对象
我只需要一些方法来查看附加了哪些主题,并对它们进行迭代
请注意,我知道该对象正在正确创建,因为我可以在数据浏览器中很好地看到它。导航到帖子
,然后单击主题
下的查看关系
,显示它已正确连接到技术
主题。首先:[object object]
并不意味着该对象为空。使用JSON.stringify()
查看它的内容
据我所知,主题是一个对象。在这种情况下,您不应该期望它被打印为“tech”。我猜你指的是这个话题的一些属性,比如“名字”
设置主题也可能有问题。确保始终使用类似于postObject.set(“topic”,arrayWithTopicsInside)
的内容,因为我认为您已将其设置为不在数组中的主题。您可能需要删除该列,以便以不同的类型添加该列
我认为应该是这样的:
Parse.Cloud.afterSave("Post", function(request) {
Parse.Cloud.useMasterKey();
var postObject = request.object;
var postTitle = postObject.get("title");
var topics = postObject.get("topic");
Parse.Object.fetchAll(topic).then(function(topics) {
var topicNames = []
_.each(topics, function(topic) {
var name = topic.get("name");
names.push(name);
});
console.log("Post with title " + postTitle + " has " + topicNames.count + " topics: " + topicNames);
}, function(error) {
concole.log("error fetching objects" + JSON.stringify(error));
});
}