這只是爲了我週末的項目/學習,我對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
不幸的是,這將讓我一個連接失敗的錯誤,說實話,我不知道爲什麼..