2017-04-11 11 views
1

parse-server을 사용하는 두 개의 iOS 앱 (appA와 appB로 지정)을 herokumailgun에 호스팅하고 있으면 다음과 같은 문제가 발생합니다.mailgun/구문 분석 서버 (heroku)가 작동하지 않습니다.

두 개의 앱은 사용자 계정과 메일을 가지고 있다는 사실을 제외하면 두 앱이 서로 관련이 없다고 가정합시다. mailgun은 사용자가 계정을 만들 때 확인 메일을 보내기 위해 모두 사용됩니다.

appA가 정상적으로 작동하고 있습니다. 새 계정을 만들면 확인 메일이 전송됩니다. 그러나 appB가 더 이상 작동하지 않습니다. 즉, 새 계정을 만들 때 확인 메일이 전송되지 않습니다.

두 작품의 차이점을 알아 내려고 노력했습니다. 한 작품을 만들지 만 다른 작품을 만드는 것은 아닙니다. 필자는이 주제에 관한 자습서를 몇 권 읽거나 들었습니다. 몇 달 전에 어떻게 이런 종류의 설정을했는지 상기시켜줍니다. 그러나 나는 관련성이있는 차이점을 잡아 내 문제를 해결할 수 없다. 이것은 appB를 다시 작동 상태로 만드는 것이다.

분야에서 저보다 많은 경험을 가진 사람이 힌트 (수행 할 내용 또는 찾을 내용)를 알려 주시면 매우 감사하겠습니다.

미리 감사드립니다.

참고로

가 여기에 작동하지 않는 응용 프로그램에 대한 구문 분석 서버하는 index.js입니다 :

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

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

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

var api = new ParseServer({ 
    databaseURI: databaseUri || 'mongodb://heroku_database', 
    cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js', 
    appId: process.env.APP_ID || '__appId__', 
    masterKey: process.env.MASTER_KEY || '__masterKey__', 
    filesAdapter: new S3Adapter(
    "__AAKKIII__", 
    "pP7Lm16Tt/nTrKq3242Hv", 
    "myapp", 
    {directAccess: true} 
), 
    serverURL: process.env.SERVER_URL || 'https://myapp.herokuapp.com/parse', 
    liveQuery: { 
    classNames: ["User", "myappUnit", "myappFieldOne", "myappFieldTwo"] 
    }, 
    emailAdapter: { 
    module: 'parse-server-simple-mailgun-adapter', 
    options: { 
     fromAddress: '[email protected]', 
     domain: 'mydomain.net', 
     apiKey: 'key-fjdfijofd', 
    } 
    } 
}); 

var app = express(); 

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

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

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

app.get('/test', function(req, res) { 
    res.sendFile(path.join(__dirname, '/public/test.html')); 
}); 

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 + '.'); 
}); 

ParseServer.createLiveQueryServer(httpServer); 
+0

전자 메일이 전송 될 때'heroku logs -tail'에있는 두 응용 프로그램 사이에 어떤 차이점이 있습니까 티? – brennan

+0

예, 실제로 큰 차이가 있습니다. 작업 응용 프로그램의 경우 새 계정을 만들 때 로그에 약 10 줄의 추적이 있고 전자 메일 확인 링크를 클릭하면 몇 줄이 추적됩니다. 작동하지 않는 앱의 경우에는 로그에 아무것도 표시되지 않습니다. 데이터베이스에 계정이 생성되었지만 확인 메일이 나타나지 않는지 확인할 수 있습니다. 모든 것이 제대로 설정되었는지 확인할 수있는 목록이 있습니까? – Michel

+0

구문 분석 서버'index.js'를 볼 수 있습니까? 두 앱이 동일한 구문 분석 서버를 공유합니까? 당신은 또한'heroku run printenv'와 환경 변수를 비교할 수 있습니다. – brennan

답변

0

를, 인터넷을 검색하는 다른 일을 시도하고 면밀한 관찰을 복용 후, 나는 발견에 의해 종료 무엇이 빠졌는 지. 장래에 누군가를 도울 수있는 경우를 대비하여 여기에 넣었습니다.

  • verifyUserEmails :

    내 게시물의 구문 분석 서버하는 index.js에서 누락 된 라인들이다 사실,

  • 프로그램 응용 : '구문 분석 앱',

의 선 위 내부에 포함될 필요가 있습니다 :

var api = new ParseServer({ 
...... 
})