从 Heroku 连接到 MongoDb 时应用程序超时
Posted
技术标签:
【中文标题】从 Heroku 连接到 MongoDb 时应用程序超时【英文标题】:application times out when connecting to MongoLab from Heroku 【发布时间】:2012-03-29 00:52:01 【问题描述】:我在 Heroku 上托管一个 node.js 应用程序,并尝试使用节点模块 node-mongodb-native 连接到 MongoLab。我的应用程序从连接到 MongoLab 的 localhost 运行时工作正常,但在部署到 Heroku 后,我收到应用程序错误 H12(请求超时)。
示例代码:
app.get('/', function(req, res)
require('mongodb').connect(mongourl, function(err, conn)
conn.collection('mycollection', function(err, coll)
coll.find().toArray(function(error, results)
if(error) console.log(error)
else
res.send(util.inspect(results));
);
);
);
);
我需要从 Heroku 传递给 .connect() 的其他选项吗?
非常感谢任何建议。谢谢!
【问题讨论】:
mongourl
返回的值是否正确?
您好,我在 MongoLab,很乐意提供帮助。 +1 Neil 所说的 .. 有兴趣知道 mongourl
的值——自然而然地屏蔽掉任何密码。
嗨,尼尔,据我所知,蒙古人正在返回正确的值。嗨@dampier,这里是mongourl:mongodb://heroku_app3138529:mypassword@ds031407.mongolab.com:31407/heroku_app3138529 奇怪的是我无法弄清楚当我从本地环境运行应用程序时它可以工作,但不是来自 Heroku...
【参考方案1】:
如果其他人有这个问题:
现在可以选择您希望在 Heroku 上运行的节点版本。因此,通过将以下代码添加到我的 package.json 中,我能够毫无问题地连接到 MongoLab:
"engines":
"node": "0.6.12"
, "npm": "1.1.4"
谢谢。
【讨论】:
出了什么问题?切换到旧版本的 node 解决了吗? 我对此也不清楚。我有同样的问题,虽然我在 package.json 中设置了我的节点值(在我的情况下为“0.10.x”)所以如果这是某种节点版本问题,我会很感激。以上是关于从 Heroku 连接到 MongoDb 时应用程序超时的主要内容,如果未能解决你的问题,请参考以下文章
尝试将 Heroku 连接到 Atlas MongoDB 时出现问题
Node.js - 在 Heroku 上使用 MongoHQ 连接到 MongoDB
Node.js 无法从 Heroku 连接到 mongodb 3 到 Mongolab:SCRAM-SHA-1
使用 mongoose 和 Fixie(Heroku 插件)连接到 mongodb