问题
I am hosting a node.js application on Heroku and trying to connect to MongoLab using the node module node-mongodb-native to connect. My application works fine when run from localhost connecting to MongoLab, but after deploying to Heroku I get an Application Error H12 (Request timeout).
Sample code:
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));
                }
            });
        });
    });
});
Are there additional options I need to pass to .connect() from Heroku?
Any suggestions are greatly appreciated. Thanks!
回答1:
In case anyone else has this issue:
It is now possible to choose what version of node you would like to run on Heroku. So by adding the following code to my package.json I was able to connect to MongoLab no problem:
"engines": {
  "node": "0.6.12"
, "npm": "1.1.4"
}
Thanks.
来源:https://stackoverflow.com/questions/9670179/application-times-out-when-connecting-to-mongolab-from-heroku