简体   繁体   English

解析到Heroku迁移:解析服务器云代码不起作用

[英]Parse to Heroku migration: Parse-server cloud code doesn't work

I succeeded to migrate my app from Parse to Heroku, now my AppDelegate use this code: 我成功地将我的应用程序从Parse迁移到了Heroku,现在我的AppDelegate使用以下代码:

[Parse initializeWithConfiguration:[ParseClientConfiguration configurationWithBlock:^(id<ParseMutableClientConfiguration> configuration) {
    configuration.applicationId = @"xxxxxxxx";
    configuration.clientKey = @"xxxxxxxx";
    configuration.server = @"http://xxxxxxxx.herokuapp.com/parse";
}]];

and not 并不是

//    [Parse setApplicationId:@"xxxxxxxx"
//                      clientKey:@"xxxxxxxx"];
//    [PFUser enableRevocableSessionInBackground];

Everything works except the cloud code, when I run a cloud code, this is the error from Simulator: [Error]: Invalid function. (Code: 141, Version: 1.12.0) 除云代码外,一切正常,当我运行云代码时,这是来自模拟器的错误: [Error]: Invalid function. (Code: 141, Version: 1.12.0) [Error]: Invalid function. (Code: 141, Version: 1.12.0)

Here is my cloud file path: /Users/Viny/heroku/parse-server-example/cloud/main.js 这是我的云文件路径: /Users/Viny/heroku/parse-server-example/cloud/main.js

I updated and push it with the same main.js from Parse. 我使用Parse中的main.js进行了更新和推送。

Here is my index.js: 这是我的index.js:

// Example express application adding the parse-server module to expose Parse
// compatible API routes.

var express = require('express');
var ParseServer = require('parse-server').ParseServer;

var databaseUri = process.env.DATABASE_URI || process.env.MONGOLAB_URI;

if (!databaseUri) {
  console.log('DATABASE_URI not specified, falling back to localhost.');
}

var api = new ParseServer({  
    databaseURI: process.env.DATABASE_URI || 'mongodb://localhost:27017/dev',  
    cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
    appId: 'xxxxxxx',  
    masterKey: 'xxxxxxx',
    fileKey: 'xxxxxxx',  
    clientKey: 'xxxxxxx',
    serverURL: 'http://localhost:1337/parse' 
});
// Client-keys like the javascript key or the .NET key are not necessary with parse-server
// If you wish you require them, you can set them as options in the initialization above:
// javascriptKey, restAPIKey, dotNetKey, clientKey

var app = express();

// Serve the Parse API on the /parse URL prefix
var mountPath = process.env.PARSE_MOUNT || '/parse';
app.use(mountPath, api);

// Parse Server plays nicely with the rest of your web routes
app.get('/', function(req, res) {
  res.status(200).send('I dream of being a web site.');
});

var port = process.env.PORT || 1337;
app.listen(port, function() {
    console.log('parse-server-example running on port ' + port + '.');
});

Cloud code works as expected with Parse, but doesn't work with Heroku... 云代码可与Parse一起正常工作,但不适用于Heroku ...

Instead of this configuration.server = @" http://xxxxxxxx.herokuapp.com/parse "; 代替此配置。server = @“ http://xxxxxxxx.herokuapp.com/parse ”; Do this configuration.server = @" http://xxxxxxxx.herokuapp.com/parse/ "; 执行此配置。server = @“ http://xxxxxxxx.herokuapp.com/parse/ ”;

Well, I think I've found the problem, I've two "personal apps" on Heroku for my iOS app: "chilln" (my iOS app name) and "rocky-reef-28464" (automatically created by following this tuto: https://learnappmaking.com/how-to-migrate-parse-app-parse-server-heroku-mongolab/ ) 好吧,我想我已经找到了问题,我在Heroku上为我的iOS应用程序有两个“个人应用程序”:“ chilln”(我的iOS应用程序名称)和“ rocky-reef-28464”(通过遵循此tuto自动创建) : https : //learnappmaking.com/how-to-migrate-parse-app-parse-server-heroku-mongolab/

I changed my configuration.server to : http://rocky-reef-28464.herokuapp.com/parse/ 我将configuration.server更改为: http : //rocky-reef-28464.herokuapp.com/parse/

and now it seems to recognize the cloud code, just this error on simulator: [Error]: <null> (Code: 141, Version: 1.12.0) 现在它似乎可以识别云代码了,只是模拟器上的以下[Error]: <null> (Code: 141, Version: 1.12.0)[Error]: <null> (Code: 141, Version: 1.12.0)

Here is a screen of my personal apps on Heroku: 这是我在Heroku上的个人应用程序的屏幕: 在此处输入图片说明

Should I have only one personal apps ? 我应该只有一个个人应用程序吗?

chilln has the add-ons MongoLab and cfg var: "app_id", "master_key", "mongolab_url", "parse_mount". chilln具有附加组件MongoLab和cfg var:“ app_id”,“ master_key”,“ mongolab_url”,“ parse_mount”。 rocky-reef-28464 hasn't add-ons MongoLab but has only one cfg var: "DATABASE_URI", and has the git heroku repo (I think) rocky-reef-28464没有附加的MongoLab,但是只有一个cfg var:“ DATABASE_URI”,并且具有git heroku存储库(我认为)

What I've to do ? 我该怎么办? Merge the two app to one ? 将两个应用程序合并到一个?

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM