MongoError:Econnrefused

时间:2015-07-25 01:26:36

标签: node.js mongodb mongoose

我刚学习MongoDB和Node.js.我正在从一个视频中进行这个非常简单的练习,我尝试将我的node.js应用程序连接到我的MongoDB,我收到了这个错误:

{[MongoError:connect ECONNREFUSED] name:'MongoError',message:'connect ECONNREFUSED'}

在此之前,我已经在mongo上配置了一个数据库,并测试了在终端上运行一些命令:

$mongod (everything ok)
$mongo (everything ok)

..然后我创建了一个名为'products'的数据库,并添加了一些产品。当我点击:

db.products.find()

它返回:

{
"_id": ObjectId("55b2b27d7f9f84490b8a9170"),
  "name": "beer",
  "description": "belgian craft beer",
  "price": 20
}
{
  "_id": ObjectId("55b2b2c27f9f84490b8a9171"),
  "name": "whisky",
  "description": "scotch blended 18 years old",
  "price": 150
}
{
  "_id": ObjectId("55b2b3e47f9f84490b8a9172"),
  "name": "cachaça",
  "description": "typical brazilian cachaça",
  "price": 10
}
{
  "_id": ObjectId("55b2b4087f9f84490b8a9173"),
  "name": "water",
  "description": "water from the swiss alps",
  "price": 5
}
{
  "_id": ObjectId("55b2b2617f9f84490b8a916f"),
  "name": "wine",
  "description": "red porto wine",
  "price": 80,
  "tags": [
    "porto",
    "sweet",
    "wine"
  ]
}

我的app.js:

var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/products');

var db = mongoose.connection;

db.on('error', function(err){
    console.log('Erro de conexao.', err)
});
db.on('open', function () {
    console.log('Conexão estabelecida.')
});
db.on('disconnected', function(err){
    console.log('Desconectado')
});

我的package.json:

{
  "name": "aula-mongoose",
  "version": "0.0.1",
  "description": "aula sobre mongoose",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [
    "node.js",
    "mongodb"
  ],
  "author": "Guga",
  "license": "WTFPL",
  "dependencies": {
    "mongoose": "^4.1.0"
  }
}

我已经阅读了很多关于此的帖子,甚至是这里的帖子。但我不知道这里有什么问题。

修改

无意中我尝试连接到$ mongod,当它已经运行时,我被提示错误:

错误:48已经用于套接字的地址:0.0.0.0:27017

所以我将app.js中的这一行更改为:

mongoose.connect('mongodb://0.0.0.0:27017/products');

它有效。但我不明白为什么。任何人吗?

2 个答案:

答案 0 :(得分:2)

对于其他人来说,有一个类似的问题。确保您已阅读mongodb的安装说明,尤其是确保计算机中存在文件夹/ data / db的部分。如果它没有创建它!

如果您仍然遇到问题,请尝试运行: sudo mongod &以确保mongo具有访问该文件夹的正确权限!

答案 1 :(得分:1)

找到答案的好工作。

正如您所发现的那样,问题是从localhost的原始声明中删除了端口信息。

在本地机顶盒上托管开发服务器时,localhost将需要端口分配。