【问题标题】:Error: failed to connect to [127.0.0.1:27017] at null错误:无法在 null 处连接到 [127.0.0.1:27017]
【发布时间】:2015-04-25 12:09:51
【问题描述】:

我正在自学如何使用 MongoDB 和 Node.Js,特别是我正在尝试设置构建在 mongo 和 node 之上的 Deployd(开源 api 构建框架),并将其托管在 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 的所有帮助!!!

【问题讨论】:

  • mongo 真的在运行吗?尝试运行ps -edaf | grep mongo 进行检查
  • 面临完全相同的问题
  • 同样的错误,但在 Windows 上,所以没有 mongod 用户或组。为每个组设置所有权限,因为它只是一台开发机器,但没有帮助

标签: node.js mongodb heroku deployd


【解决方案1】:

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

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

2..如果你使用 Express@3, connect-mongo 可能有 default 设置 connect to [127.0.0.1:27017]

connect-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。 希望有帮助。

【讨论】:

    【解决方案2】:

    我也在这个问题上浪费了很多时间。然后发现了一个愚蠢的问题。 我正在安装 Pencilblue。 您应该在其中进入pencilblue的根文件夹。

    1. 找到“sample.config.json”
    2. 编辑它“config.json”。``
    3. 然后在 gitbash --> 输入“pbctrl start”

    它对我有用。对于 Windows 的 Mongodb 安装,您可以参考http://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/ 可能会对某人有所帮助..

    【讨论】:

    • 操作一个 POSIX 系统,可能使用 Mac OS X,而不是 Windows。
    猜你喜欢
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    • 1970-01-01
    • 2012-10-30
    相关资源
    最近更新 更多