将main.js迁移到解析服务器

时间:2016-10-27 01:48:10

标签: node.js heroku parse-platform

我需要帮助迁移我的解析服务器,并由解析支持页面指示。

我已完成数据库迁移到mLab数据库并在heroku中运行解析服务器示例。

我的项目完全可以使用默认的解析服务器示例main.js文件检索我的当前数据,但是我仍然希望从客户端运行ParseServer作业,就像在这个iOS示例中一样,所以我想使用自己的main。 js文件。

[PFCloud callFunction:@"publishCard" withParameters:@{
@"cardID" : card.cardPF.objectId,
} error:&error];

当我尝试使用以下文件作为main.js运行我的项目时(我已将其重命名为newmainjs仅用于可见性),它不允许我从我的iOS客户端再次使用parse登录 - 它似乎是触发错误,我不知道如何调试它,因为它没有在迁移教程中介绍。

https://github.com/KetchupMoose/cardgameserver/blob/master/cloud/newmain.js

我在后端/节点非常业余,所以我非常感谢一些支持,因为我之前依赖Parse做了很多事情。

1 个答案:

答案 0 :(得分:0)

看看:https://parse.com/migration

第3节"云代码"。

您需要更改以下内容的使用:

Parse.Cloud.useMasterKey()
你使用

这里: https://github.com/KetchupMoose/cardgameserver/blob/master/cloud/newmain.js#L162

在这里:https://github.com/KetchupMoose/cardgameserver/blob/master/cloud/newmain.js#L633

而不是使用useMasterKey(),你需要传递“useMasterKey:true'查询和保存。

以下是您的代码中的一些示例:

userQuery.find({
    useMasterKey: true, // <-- note the addition here
    success: function(results) {
      console.log(results.count);
    ....

}).then(function(saveObjects)
  {
    Parse.Object.saveAll(updatedUserObjects, {
      useMasterKey: true,  // <--- here  
      success: function(list) {
      //assumes all are saved
        response.success("user EloRatings Saved Successfully");
      },
 .....

Parse.Cloud.define("giveSellerGold", function(request, response) {
  Parse.Cloud.useMasterKey();
    var user = new Parse.User();
    var query = new Parse.Query(Parse.User);
    query.equalTo("objectId", request.params.sellerID);
    query.first({
       useMasterKey: true, // <--- here
       success: function(object) {
          object.increment("gold", request.params.sellerGold);
          object.save(null, { useMasterKey: true }); // <-- note how save is done.
          response.success("Successfully saved gold");
       },
       error: function(error) {
        response.error("update failed");
       }
    });
 });

所以只需确保所有查询(需要它)都通过了“useMasterKey”&#39;在选项中,应该这样做!祝你好运。