1

我正在自学如何使用 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 抱怨没有/data/db 文件夹

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

4

2 回答 2

1

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

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

2..如果你使用 Express@3,connect-mongo 可能有默认设置 connect to [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。希望能帮助到你。

于 2015-02-10T03:22:24.537 回答
-1

我也在这个问题上浪费了很多时间。然后发现了一个愚蠢的问题。我正在安装 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/ 可能会对某些人有所帮助..

于 2014-12-12T11:53:13.550 回答