解析用户 Class 上的云代码设置关系
Parse Cloud Code Setting Relation On User Class
我无法在 Parse 中获取一些云代码到 运行。目前,我传递了另一个我想为其设置评论的用户的 objectId。在客户端,我正在保存评论,并捕获该对象。我也将其传递给云代码。两者都出现在那里,但我无法找出正确的方法来设置此用户的关系并应用已创建的评论。代码片段如下。在我撞墙之前,我们将不胜感激。
Parse.Cloud.define("addReview", async (request, response) => {
let { userObjId, reviewObj } = request.params;
const query = new Parse.Query(Parse.User);
//get the user object to post review of
try{
let object = await query.get(userObjId, {useMasterKey: true});
console.log(object);
console.log("running");
object.set('Reviews', new Parse.Object(reviewObj));
object.save(null, { useMasterKey: true })
return ("saved relation and updated reviews");
} catch (err){
throw new Error(err.message)
}
});
我假设
reviewObj
为评论对象,用户最近创建。
- 并且在您的
User
class 中,您与 Review
class 建立了一个名为 'Reviews'
.[=38= 的多对多关系]
首先,我建议将您的用户对象命名为 user
而不是 object
,以便更清楚地说明您正在处理的内容并使您的代码更易于理解。
既然你说review对象已经成功保存在服务器端,我建议你在请求中只传输reviewId。
要将对象添加到关系中,您首先需要获取用户对象的关系 属性:
const reviewsRelation = user.relation('Reviews');
然后将对象添加到关系中只需调用:
reviewsRelation.add(user);
总的来说,您的代码段应如下所示:
Parse.Cloud.define("addReview", async (request, response) => {
let { userObjId, reviewObjId } = request.params;
const userQuery = new Parse.Query(Parse.User);
const reviewQuery = new Parse.Query(Parse.Review);
//get the user object to post review of
try{
let user = await userQuery.get(userObjId, {useMasterKey: true});
let review = await reviewQuery.get(reviewObjId, {useMasterKey: true});
console.log(user);
console.log("running");
const reviewsRelation = user.relation('Reviews');
reviewsRelation.add(review);
user.save(null, { useMasterKey: true })
return ("saved relation and updated reviews");
} catch (err){
throw new Error(err.message)
}
});
我无法在 Parse 中获取一些云代码到 运行。目前,我传递了另一个我想为其设置评论的用户的 objectId。在客户端,我正在保存评论,并捕获该对象。我也将其传递给云代码。两者都出现在那里,但我无法找出正确的方法来设置此用户的关系并应用已创建的评论。代码片段如下。在我撞墙之前,我们将不胜感激。
Parse.Cloud.define("addReview", async (request, response) => {
let { userObjId, reviewObj } = request.params;
const query = new Parse.Query(Parse.User);
//get the user object to post review of
try{
let object = await query.get(userObjId, {useMasterKey: true});
console.log(object);
console.log("running");
object.set('Reviews', new Parse.Object(reviewObj));
object.save(null, { useMasterKey: true })
return ("saved relation and updated reviews");
} catch (err){
throw new Error(err.message)
}
});
我假设
reviewObj
为评论对象,用户最近创建。- 并且在您的
User
class 中,您与Review
class 建立了一个名为'Reviews'
.[=38= 的多对多关系]
首先,我建议将您的用户对象命名为 user
而不是 object
,以便更清楚地说明您正在处理的内容并使您的代码更易于理解。
既然你说review对象已经成功保存在服务器端,我建议你在请求中只传输reviewId。
要将对象添加到关系中,您首先需要获取用户对象的关系 属性:
const reviewsRelation = user.relation('Reviews');
然后将对象添加到关系中只需调用:
reviewsRelation.add(user);
总的来说,您的代码段应如下所示:
Parse.Cloud.define("addReview", async (request, response) => {
let { userObjId, reviewObjId } = request.params;
const userQuery = new Parse.Query(Parse.User);
const reviewQuery = new Parse.Query(Parse.Review);
//get the user object to post review of
try{
let user = await userQuery.get(userObjId, {useMasterKey: true});
let review = await reviewQuery.get(reviewObjId, {useMasterKey: true});
console.log(user);
console.log("running");
const reviewsRelation = user.relation('Reviews');
reviewsRelation.add(review);
user.save(null, { useMasterKey: true })
return ("saved relation and updated reviews");
} catch (err){
throw new Error(err.message)
}
});