这只是为了我周末的项目/学习,我对Sinatra和MongoDB非常陌生。Ruby Sinatra - 连接到mongoHQ上的mongoDB失败
我已经安装了mongoDB的gem,比如:mongo,mongo_mapper和mongoid。
当我试图连接到我的数据库MongoHQ从本地主机,它遇到了这样的错误:
Mongo::ConnectionFailure at/
failed to connect to any given host:port
* file: connection.rb
* location: connect
* line: 489
我发现,但坦白说,我不太明白的答案...
这里是我的代码片段:
require 'rubygems'
require 'sinatra'
require 'mongo'
require 'mongo_mapper'
get '/' do
MongoMapper.connection = Mongo::Connection.new('flame.mongohq.com', 27044)
MongoMapper.database = 'notes'
MongoMapper.database.authenticate('foo', 'bar')
erb :list
end
我把上面的代码从here,但似乎不工作...
哪部分是错误的?有没有另一种方法来做到这一点?最后,这个测试Web应用程序将部署到heroku上,所以我希望这个解决方案可以与localhost和我的heroku服务器一起工作。
更新时间:
I just created a minimal code snippet to test the mongodb connection:
require 'rubygems'
require 'mongo'
db = Mongo::Connection.new("flame.mongohq.com", 27044).db("notes")
但还是得到了错误,超时后:
$ ruby mongodbtest.rb
/Library/Ruby/Gems/1.8/gems/mongo-1.0.8/lib/../lib/mongo/connection.rb:489:in
`connect': failed to connect to any given host:port (Mongo::ConnectionFailure)
from /Library/Ruby/Gems/1.8/gems/mongo-1.0.8/lib/../lib/mongo/connection.rb:137:in
`initialize'
from mongodbtest.rb:4:in `new'
from mongodbtest.rb:4
的主机名和端口根据mongoHQ文件,所以他们一定是对的。
感谢您的帮助提前。
月2日更新:
我只是使用终端测试MongoDB的连接字符串:
mongo mongodb://flame.mongohq.com:27044/notes -u foo -p bar
不幸的是,这将让我一个连接失败的错误,说实话,我不知道为什么..