我真的很困惑如何在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 );但是,只有'contacts‘中的数据库查询才会传递到这个服务器中吗?我可以为我的每种数据库访问方法执行多个connect.createServer吗?
以下是我在本地连接到MongoDB时的部分代码。我不确定如何修改它以连接到Heroku上的MongoLab。
有人能教我如何修改我的代码来连接吗?或者解释其中的一些概念?我不知道为什么我发布的那个网站的作者使用了这么多回调来进行数据库调用,而我下面的方法看起来足够简单(我是JavaScript的新手,不擅长回调)。
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' });
});发布于 2012-05-05 16:40:37
你连接到你的mongolab数据库(所以你不能创建一个新的“博客”数据库)。process.env.MONGOLAB_URI还包括数据库名称。查看您的mongolab uri:
heroku config | grep MONGOLAB_URI它看起来像:mongodb://heroku_app123456:password@dbh73.mongolab.com:27737/heroku_app123456
在github上有an example how to connect and retrieve data from a mongolab database。
发布于 2012-06-07 06:24:49
使用connect连接mongo,而不是定义db、server、client:
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");
});
});https://stackoverflow.com/questions/10406668
复制相似问题