【发布时间】:2017-09-06 07:01:17
【问题描述】:
有两个 iOS 应用程序(让我们将它们命名为 appA 和 appB)都使用托管在 heroku 和 mailgun 上的 parse-server,我遇到了下面描述的问题。
首先让我说这两个应用程序是不相关的,除了它们都有用户帐户并且邮件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: 'parse@example.com',
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中的两个应用程序之间有什么区别吗? -
是的,我确实看到了很大的不同。对于正在运行的应用程序,当创建新帐户时,日志中大约有 10 行跟踪,当单击电子邮件验证链接时,还有几行。在非工作应用程序的情况下,日志中根本没有任何内容。我可以验证该帐户是否已在数据库中创建,但不会出现验证邮件。有没有我可以检查的东西的清单,看看是否一切都设置好了?
-
我们能看到解析服务器
index.js吗?这两个应用程序是否共享同一个解析服务器?您还可以将环境变量与heroku run printenv进行比较 -
没有这两个应用程序有自己的解析服务器。
-
两种情况下运行“heroku run printenv”的结果似乎非常相似。
标签: email heroku parse-server mailgun heroku-api