错误:无法以null连接到[127.0.0.1:27017]

时间:2014-01-29 17:31:54

标签: node.js mongodb heroku deployd

我自己教会如何使用MongoDB和Node.Js,特别是我试图设置Deployd(开源api构建框架),它建立在mongo&节点,并在Heroku上托管它。我正在学习本教程:

http://www.icapps.com/open-source-alternative-for-parse/

尝试连接到http://localhost:3000/时出现问题,它会引发错误:

    GET /dashboard/ Error: failed to connect to [127.0.0.1:27017]
at null.<anonymous> (/Users/kimi/Documents/Web/deployd/deployd-demo/node_modules/deployd/node_modules/mongodb/lib/mongodb/connection/server.js:383:73)
at EventEmitter.emit (events.js:95:17)
at null.<anonymous> (/Users/kimi/Documents/Web/deployd/deployd-demo/node_modules/deployd/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:93:15)
at EventEmitter.emit (events.js:98:17)
at Socket.<anonymous> (/Users/kimi/Documents/Web/deployd/deployd-demo/node_modules/deployd/node_modules/mongodb/lib/mongodb/connection/connection.js:385:10)
at Socket.EventEmitter.emit (events.js:95:17)
at net.js:441:14
at process._tickDomainCallback (node.js:459:13)

我知道这与mongo无法正确连接到服务器有关。但我对如何解决这个问题感到茫然。有没有人对这个新手有任何建议?

非常感谢你!

/////////// 回答! (stackoverflow赢了,让我再发一个8小时的答案),但基本上看来mongo目录是在错误的地方创建的。但是跑步:

sudo mkdir -p /data/db

并将权限更改为:

sudo chmod 0755 /data/db
sudo chown mongod:mongod /data/db
它似乎工作。好极了!我使用这个stackoverflow答案作为参考:

mongodb Mongod complains that there is no /data/db folder

非常感谢@Niall的所有帮助!!!

2 个答案:

答案 0 :(得分:1)

1 ..可能是连接错误,你启动mongod服务吗?

$ mongod --host localhost --dbpath /var/lib/mongodb --logpath data/log/mongodb/mongodb.log

2 ..如果你使用Express @ 3, connect-mongo可能默认设置连接到[127.0.0.1:27017]

连接-mongo.js

$ vi .\node_modules\connect-mongo\lib\connect-mongo.js
...
var defaultOptions = {
  // Legacy strategy default options
  host: '127.0.0.1',
  port: 27017,
...
app.js

中的

var settings = require('./settings');
...
var MongoStore = require('connect-mongo')(express);
var sessionStore = new MongoStore({
    host: settings.host, //define this, otherwise it throws "Error: failed to connect to [1276.0.0.1:27017]"
    port: settings.port,
    db: settings.db
}, function () {
    console.log('connect mongodb success...');
});
settings.js 中的

可以这样设置:

module.exports = {
    cookie_secret : 'secret_meteoric',
    db : 'test',
    host : '192.168.0.190',  //your mongod host
    port : 27017
};

然后您可以在应用启动时连接默认的mongod。 希望它有所帮助。

答案 1 :(得分:-1)

我在这个问题上也浪费了很多时间。然后发现了一个愚蠢的问题。 我正在安装Pencilblue。 你应该去铅笔蓝根文件夹。

  1. 找到“sample.config.json”
  2. 编辑“config.json”.``
  3. 然后在gitbash中 - &gt;输入“pbctrl start”
  4. 它为我工作。对于Windows的Mongodb安装,您可以参考http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/ 可能会对某人有所帮助..