如何使用node-mongodb-native连接到Heroku?

我对如何连接到Heroku上的MongoLab感到非常困惑。 要使用uri连接到Heroku,我试图遵循这个例子: http : //experiencecraftsmanship.wordpress.com/2012/01/06/heroku-node-js-mongodb-featuring-the-native-driver/

我看着他的web.js和deep.js。 他们都这样做:

connect.createServer( require( 'connect-jsonrpc' )( contacts ) ).listen( port ); 

但是,只有“通讯录”中的数据库查询被传递到这个服务器呢? 我允许为我的每个数据库访问方法做多个connect.createServer吗?

以下是我在本地连接到MongoDB的代码的一部分。 我不确定如何修改它以连接到Heroku上的MongoLab。

有人可以教我如何修改我的代码连接? 或者解释一下这些概念? 我不知道为什么我发布的那个网站的作者使用了这么多的callback来进行数据库调用,当我的方法看起来很简单(我是JavaScript新手,不太适合callback)。

 var app = module.exports = express.createServer( form({ keepExtensions: true }) ); var Db = require('mongodb').Db; var Server = require('mongodb').Server; var client = new Db('blog', new Server('127.0.0.1', 27017, {})); var posts; var getAllPosts = function(err, collection) { collection.find().toArray(function(err, results) { posts = results; console.log(results); client.close(); }); } app.get('/', function(req, response) { client.open(function(err, pClient) { client.collection('posts', getAllPosts); }); // some code response.render('layout', { posts: posts, title: 'Raymond', contentPage: 'blog' }); }); 

你连接到你的mongolab数据库(所以你不能创build一个新的“博客”数据库)。 process.env.MONGOLAB_URI也包含数据库名称。 看到你的蒙哥拉乌里:

 heroku config | grep MONGOLAB_URI 

它看起来像: mongodb://heroku_app123456:password@dbh73.mongolab.com:27737/heroku_app123456

在github上有一个例子,如何连接和检索来自mongolab数据库的数据 。

使用“连接”连接到mongo,而不是定义数据库,服务器,客户端:

 var connect = require('connect'); var mongo = require('mongodb'); var database = null; var mongostr = [YOUR MONGOLAB_URI]; mongo.connect(mongostr, {}, function(error, db) { console.log("connected, db: " + db); database = db; database.addListener("error", function(error){ console.log("Error connecting to MongoLab"); }); });