最近パースサーバーを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 + '.');
});
どのように解析サーバーを起動しますか?設定を表示するには、そこにクラウドコード用のファイルを定義する必要があります –
質問を更新して、エクスプレスコードを組み込んでパーズサーバーとダッシュボードを開始しました。 – rfranczyk
2つの問題がありました。まず、サーバーの構成が正しくありませんでした。 SERVER_URLには/ parseはありませんでした.PARSE_MOUNTプロパティがexpressでルーティングするために使用されていたため、私はそれを逃しました。 2番目のuseMasterKeyの構文は、.get()のようにする必要があります - 私はコードをどこかからオンラインでコピーしていましたが、正しくありませんでした。 userQuery.get(request.params.userId、{useMasterKey:true、 成功:function(user) – rfranczyk