在发送到客户端之前,如何从 Parse 服务器访问和消除我的 Javascript 用户对象?

How can I access & sterilize my Javascript user object from Parse server before sending to client?

我不知道为什么我不能对我的用户对象数组服务器端进行消毒。我在访问所有服务器端的任何属性时遇到问题,无论我尝试了什么,我都会收到错误或空结果。在我的 Flutter/Dart 代码中,我可以正常访问任何属性,但当然我不希望用户能够获取所有此类数据。

所以问题是,为什么我不能访问属性服务器端,我该怎么做?

编辑:在评论中的一些帮助中发现这个“对象”实际上不是数组,这使事情变得更加困难。我可以在我的 flutter dart 代码中正常访问“not array”也是没有意义的......任何想法有什么问题?

我的代码有效,返回一个 Parse User 对象列表:

Parse.Cloud.define("ccRoleUsersQuery", async function(request) {
    const query = await new Parse.Query(Parse.Role).equalTo('users', request.user).find({ useMasterKey: true })
    let users = query[0].getUsers().query().find({ useMasterKey: true });
    let steralizedResults = [];
    for (let i = 0; i < users.length; i++) {
        let name = users[i].get("name");         // Does not access object
      let publicKey = users[i]["publicKey"];     // Does not access object
      steralizedResults.push(name);          
      steralizedResults.push(publicKey);    
    }
    return users;            // steralizedResults if used returns empty array
  });

如上返回的用户数组:

[{username: user003, email: user003@parse.com, createdAt: 2021-09-26T23:37:37.594Z,
updatedAt: 2021-10-05T01:25:43.989Z, publicKey: 445trTREttY654FFFGgt5ydfsg, name: 003, ACL: {6m9LPbxD8V: {read: true, write: true}}, objectId: 6m9LPbxD8V, __type: Object, className: _User}, 
{username: user004, createdAt: 2021-10-03T22:19:27.754Z, updatedAt: 2021-10-06T23:24:07.576Z, email: user004@parse.com, publicKey: GTRg554gtr8yvfdsv43fdsv334, name:
004, ACL: {t9joISsGwO: {read: true, write: true}}, objectId: t9joISsGwO, __type: Object, className: _User}]

'这是异步的季节:

query.find({
  success: function(results) {
    // results is an array of Parse.Object.
  },
  error: function(error) {
    // error is an instance of Parse.Error.
  }
});

您还可以在 Parse.Query 对象上使用特殊函数:https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/parse/index.d.ts(搜索 class Query