parse-server
을 사용하는 두 개의 iOS 앱 (appA와 appB로 지정)을 heroku
및 mailgun
에 호스팅하고 있으면 다음과 같은 문제가 발생합니다.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);
전자 메일이 전송 될 때'heroku logs -tail'에있는 두 응용 프로그램 사이에 어떤 차이점이 있습니까 티? – brennan
예, 실제로 큰 차이가 있습니다. 작업 응용 프로그램의 경우 새 계정을 만들 때 로그에 약 10 줄의 추적이 있고 전자 메일 확인 링크를 클릭하면 몇 줄이 추적됩니다. 작동하지 않는 앱의 경우에는 로그에 아무것도 표시되지 않습니다. 데이터베이스에 계정이 생성되었지만 확인 메일이 나타나지 않는지 확인할 수 있습니다. 모든 것이 제대로 설정되었는지 확인할 수있는 목록이 있습니까? – Michel
구문 분석 서버'index.js'를 볼 수 있습니까? 두 앱이 동일한 구문 분석 서버를 공유합니까? 당신은 또한'heroku run printenv'와 환경 변수를 비교할 수 있습니다. – brennan