gpt4 book ai didi

javascript - 将项目附加到获取的项目数组解析云代码

转载 作者:行者123 更新时间:2023-12-03 06:32:35 26 4
gpt4 key购买 nike

  • Javascript
  • 解析云代码
<小时/>

在我的应用中,用户可以请求加入另一个用户帐户。其伪代码如下:

  1. 发送我们想要加入的帐户的用户名
  2. 搜索数据库中是否存在用户名
  3. 如果返回
  4. 如果yes创建一个新的AccountRequest对象
  5. 将新创建的 AccountRequest 对象添加到我们正在搜索的用户。

我可以执行步骤 1-4,但在完成步骤 5 时遇到困难。

这是我正在使用的代码。

Parse.Cloud.define("sendAccountAdditionRequest", function(request, response) {

console.log("-sendAccountAdditionRequest");

// Create the query on the User class
var query = new Parse.Query(Parse.User);

// Set our parameters to search on
query.equalTo("username", request.params.adminUsername);

// Perform search
query.find({

// We found a matching user
success: function(results) {

Parse.Cloud.useMasterKey();

var fetchedUser = results[0]

console.log("--found user");
console.log("--creating new AccountRequest");

// Create a new instance of AccountRequest
var AccountRequestClass = Parse.Object.extend("AccountRequest");
var accountRequest = new AccountRequestClass();

// Set the User it is related to. Our User class has a 1..n relationship to AccountRequest
accountRequest.set("user", fetchedUser);

// Set out other values for the AccountRequest
accountRequest.set("phone", request.params.adminUsername);
accountRequest.set("dateSent", Date.now());

// Save the new AccountRequest
accountRequest.save(null,{

// Once the new AccountRequest has been saved we need to add it to our fetched User
success:function(savedRequest) {

console.log("---adding AccountRequest to fetched User");

//
// === This is where stuff breaks
//

var requestRelation = fetchedUser.relation("accountRequest");

// Now we need to add the new AccountRequest to the fetched User. The accountRequest property for a User is array...I'm not sure how I'm suppose to append a new item to that. I think I need to somehow cast results[0] to a User object? Maybe?
requestRelation.add(savedRequest);

// We perform a save on the User now that the accountRequest has been added.
fetchedUser.save(null, {

success:function(response) {
console.log("----AccountRequest complete");
response.success("A request has been sent!");
},

error:function(error) {
// This is printing out: ParseUser { _objCount: 2, className: '_User', id: 'QjhQxWCFWs' }
console.log(error);
response.error(error);
}
});


//
// ================================
//


//response.success("A request has been sent!");
},

// There was an error saving the new AccountRequest
error:function(error) {
response.error(error);
}
});
},

// We were not able to find an account with the supplied username
error: function() {
response.error("An account with that number does not exist. Please tell your administrator to sign up before you are added.");
}
});
});

我相信我的问题是从初始查询返回的搜索结果中获取 accountRequest 关系。另一件需要注意的是,我还没有创建 PFUseraccountRequest 属性,我的理解是,当我执行 save 时,Parse 会自动完成此操作 函数。

最佳答案

是否会为您创建 accountRequest 取决于是否将类级别权限设置为允许客户端应用程序添加字段。对于您的 Parse.User,这可能设置为 NO。

但是无论如何都不需要 Parse.User 上的关系,因为您已经在 AccountRequest 类上建立了它。给定一个用户,您可以通过以下方式获取其 accountRequests:

PFQuery *query = [PFQuery queryWithClassName:@"AccountRequest"];
[query whereKey:@"user" equalTo:aUser];
query.find()...

这相当于获取 User 上的关系,获取其查询并运行它。

关于代码的一些注意事项:(a) 当您知道只有一个结果时 findOne 会为您节省一行,(b) 使用 Parse.Promise 确实会节省一行收拾东西。

关于javascript - 将项目附加到获取的项目数组解析云代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38382493/

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