2016-10-13 11 views
0

最近パースサーバーをherokuに移行しましたが、クラウドコードを除いてすべてが完璧に動作するように見えますが、Parse.Queryはこれまでどおり応答していません。任意のクエリでサーバークラウドコードが応答しない

私はカスタムクラウドコードを実行できますが、いつでもParse.Queryを実行する必要があります。リクエストがタイムアウトします。ここ

は私のコードです:

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

var config_name = "RWMTrialMinutes"; 
var minutesForPeriod = 120; 
var isTrial = true; 
var periodStartDate = new Date("01/01/2015"); 
var minutesUsed = 0; 

console.log("userId=" + request.params.userId); 
var userQuery = new Parse.Query(Parse.User); 

userQuery.get({ useMasterKey: true }).then(request.params.userId, { 
    success: function(user) { 
     console.log("success"); 
     response.success(100); 
    }, 
    error: function(object, error) { 
     console.log("failed"); 
     response.error(error); 
    } 
}); 
}); 

私はその後、呼び出し: カール-X POST -H "X-解析-アプリケーション-ID:XXX" https://xxx.herokuapp.com/parse/functions/get_remaining_minutes?userId=dMbBrRGD1y

をし、タイムアウト

を取得します

2016-10-13T17:21:21.858269 + 00:00 heroku [router]:at =情報メソッド= POSTパス= "/ classes/_User" host = xxx.herokuapp.com request_id = xxx fwd = "xxx" dyno = web.1 connect = 0msサービス= 7msステータス= 404バイト= 225 2016-10-13T17:21:21.788404 + 00:00 app [wエラーコード= H12 desc = "要求のタイムアウト"メソッド= POSTパス= "/ parse/functions/syslog"}:userId = dMbBrRGD1y 2016-10-13T17:21:51.759088 + 00:00 heroku [router] get_remaining_minutes?userId = dMbBrRGD1y "host = xxxx.herokuapp.com request_id = xxx fwd =" xxx "dyno = web.1 connect = 1msサービス= 30000msステータス= 503バイト= 0

query - 試してみました。最初、.get、.find、すべて同じことをするようです - タイムアウト。 .get呼び出しをスキップすると、関数は正常に動作し、正しく応答することができます。しかし、私は明らかに私のコードが動作するためのクエリを作成する必要があります。

私は何か基本的なものが欠けているように感じています。必要なものか、パスが正しく設定されていないかもしれません。

クラウドコードが失敗している理由について違いがあると思うなら、私は同じHerokuアプリケーションでparse serverとdashboardを実行しています。

アイデア?

編集: - 最初のサーバーが正しく構成された

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

var allowInsecureHTTP = true; 

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


var api = new ParseServer({ 
    databaseURI: databaseUri || 'mongodb://localhost:27017/dev', 
    cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js', 
    appId: process.env.APP_ID || 'xxx', 
    masterKey: process.env.MASTER_KEY || '', 
    serverURL: process.env.SERVER_URL || 'xxx.herokuapp.com/parse', 
    restAPIKey: 'xxx', 
push:{ 
ios:{ 
     pfx: 'Push.p12', 
     bundleId: 'xxx', 
     production: true 
    } 
    } 
}, allowInsecureHTTP); 

var dashboard = new ParseDashboard({ 
users: [{ 
    user: 'admin', 
    pass: 'xxx' 
}], 
apps: [ 
{ 
    serverURL: process.env.SERVER_URL + process.env.PARSE_MOUNT ||  'https://xxx.herokuapp.com/', 
    appId: process.env.APP_ID || 'myAppId', 
    masterKey: process.env.MASTER_KEY || '', 
    appName: process.env.APP_NAME || 'StoryTime', 
    iconName: 'Icon-60.png' 
    } 
], 
"iconsFolder": "icons" 
}, allowInsecureHTTP); 

var app = express(); 

app.use('/public', express.static(path.join(__dirname, '/public'))); 


var mountPath = process.env.PARSE_MOUNT || '/parse'; 
app.use(mountPath, api); 

//start the dashboard 
app.use('/dashboard', dashboard); 

app.get('/', function(req, res) { 
    res.status(200).send('I dream of being a website. Please star the parse- server repo on GitHub!'); 
}); 


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

どのように解析サーバーを起動しますか?設定を表示するには、そこにクラウドコード用のファイルを定義する必要があります –

+0

質問を更新して、エクスプレスコードを組み込んでパーズサーバーとダッシュボードを開始しました。 – rfranczyk

+0

2つの問題がありました。まず、サーバーの構成が正しくありませんでした。 SERVER_URLには/ parseはありませんでした.PARSE_MOUNTプロパティがexpressでルーティングするために使用されていたため、私はそれを逃しました。 2番目のuseMasterKeyの構文は、.get()のようにする必要があります - 私はコードをどこかからオンラインでコピーしていましたが、正しくありませんでした。 userQuery.get(request.params.userId、{useMasterKey:true、 成功:function(user) – rfranczyk

答えて

0

解析・サーバーおよびダッシュボードを起動するための私のindex.jsコードを追加するには二つの問題があったが判明します。 SERVER_URLには/ parseはありませんでした.PARSE_MOUNTプロパティがexpressでルーティングするために使用されていたため、私はそれを逃しました。次に、useMasterKeyの構文は、.get()のようにする必要があります - 私はどこかの場所からコードをコピーしていましたが、正しくありませんでした。

userQuery.get(request.params.userId, { useMasterKey:true, success: function(user).... 
関連する問題