2016-10-13 3 views
0

최근에 parseserver를 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 연결 = 0ms 서비스 = 7ms 상태 = 404 바이트 = 225 2016-10-13T17 : 21 : 21.788404 + 00 : 00 app [w 오류 코드 = H12 desc = "요청 제한 시간"방법 = POST 경로 = "/ 구문 분석/기능/나는 많은 다른 방법을 시도했습니다 0

get_remaining_minutes? userId를 = dMbBrRGD1y "호스트 = xxxx.herokuapp.com REQUEST_ID = xxx는 FWD ="xxx는 "다이노는 =의 1ms의 서비스를 연결 web.1 = 30000ms 상태 = 503 바이트 = 쿼리 - .first, .get, .find, 모두 똑같은 일을하는 것처럼 보입니다 - 타임 아웃. .get 호출을 건너 뛰면 함수가 올바르게 작동하고 response.success를 올바로 수행 할 수 있습니다. 그러나 분명히 작동하도록 내 코드에 대한 쿼리를 작성해야합니다.

나는 기본적으로 뭔가 빠뜨린 것 같은 느낌이 들거나 요구 사항처럼 경로가 올바르게 설정되지 않았습니다.

또한 클라우드 코드가 실패한 이유와 관련하여 차이점이 있다고 생각되는 경우 동일한 Heroku 응용 프로그램에서 구문 분석 서버와 대시 보드를 실행 중입니다.

아이디어가 있으십니까?

편집 :

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

두 가지 문제가있었습니다. 먼저 서버가 잘못 구성되었습니다. SERVER_URL에는/parse가 없었고 PARSE_MOUNT 속성이 express로 전달하는 데 사용 되었기 때문에 놓쳤습니다. 두 번째로 useMasterKey의 구문은 .get()과 비슷해야합니다. 온라인에서 코드를 복사했는데 올바르지 않습니다. userQuery.get (request.params.userId, {useMasterKey : true, 성공 : 함수 (사용자) – rfranczyk

답변

0

이 두 가지 문제가 있었다 밝혀 구문 분석 서버와 대시 보드를 시작하는 내하는 index.js 코드 추가 - 먼저 서버가 잘못 구성되었다. SERVER_URL에는/parse가 없었고 PARSE_MOUNT 속성이 express로 전달하는 데 사용 되었기 때문에 놓쳤습니다. 두 번째로 useMasterKey의 구문은 .get()과 같아야합니다. - 온라인 어딘가에서 코드를 복사했는데 올바르지 않습니다.

userQuery.get(request.params.userId, { useMasterKey:true, success: function(user)....