解析云代码新SDK包括子类不工作

Parse cloud code new SDK include subclass not working

本文关键字:包括 子类 工作 SDK 代码      更新时间:2023-09-26

我使用的是旧的解析SDK版本1.5.0,我的函数返回了所有包含的内容。现在我尝试使用最新的SDK,该函数只返回主对象(在门和位置上,我只得到"指针")。

代码如下:

Parse.Cloud.define("get_gates_for_user", function(request, response) {
    var userId = request.params.userId;

var gateToUserQuery = new Parse.Query("GateUserJoinTable");
gateToUserQuery.equalTo("user", {
            __type: "Pointer",
            className: "_User",
            objectId: userId
        });

gateToUserQuery.include("gate");
gateToUserQuery.include("location");
gateToUserQuery.find({
    success: function(results) {
        response.success(results);
    },
    error: function(error) {
        console.log(error.message);
        response.error(ERROR_CODE_GENERAL_ERROR);
    }
});
});

我最近才开始使用Parse,所以我对旧SDK版本的行为不是很熟悉。

由于您在云代码中,然而,.include()并不保证比.fetch()有显着的性能增益,因为代码运行在他们的基础设施上(这是访问相关Parse.Object s的文档方式,因此无论如何他们都应该对此进行优化),因此以下内容应该有效:

var _ = require('underscore');
var results;
gateToUserQuery.find().then(function (joins) {
  // add results to bigger-scoped variable
  // for access in the other function
  results = joins;
  // Promises are beautiful
  var fetchPromises = _.map(results, function (join) {
    return Parse.Promise.when([
      join.get('gate').fetch(),
      join.get('location').fetch()
    ]));
  });
  return Parse.Promise.when(fetchPromises);
}).then(function () {
  // related Pointers should be filled with data
  response.success(results);
});

我认为至少在SDK的当前迭代中,include只适用于数组而不是指针。