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



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

所以问题是,为什么我不能访问属性服务器端,以及如何做到这一点?

编辑:在评论中的一些帮助下,已经发现这个";对象";实际上不是一个数组,这会使事情变得更加困难。我可以访问";非数组";通常在我的飞镖代码中。。。有什么想法吗?

以下是我遵循的内容我的代码工作,返回解析用户对象列表:

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)

最新更新