MongoDB - MongoError: connect ECONNREFUSED

6
我尝试连接mongoDB时一直出现错误。我知道类似的问题很多,但我查看了所有相关问题,没有找到解决方法。
以下是精确的错误信息:
连接错误:{MongoError: connect ECONNREFUSED 127.0.0.1:21017 name: 'MongoError' message: connect ECONNREFUSED 127.0.0.1:21017}
我看过其他解决方案,它们说要调整mongo.conf文件,但我在我的系统中找不到该文件,而我已经下载了MongoDB。
以下是我的全部代码:
var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
$ = require('cheerio');

/* GET home page. */


mongoose.connect('mongodb://localhost/');


var db = mongoose.connection;
db.on('error', console.error.bind(console, 'connection error:'));
db.once('open', function() {
    console.log('Connected to database');
  // we're connected!
});


var pageInfo = {
    title: 'JotIT',
    owner: 'Emmanuel Obogbaimhe',
    message: 'Hi welcome to JotIT. A quick, simple and easy to use note taker.',
    date: Date.now(),
    age: 22
};

router.get('/', function(req, res, next) {
  res.render('index', { 
    title: pageInfo.title,
    author: pageInfo.owner,
    message: pageInfo.message,
    date: pageInfo.date,
    age: pageInfo.age
     });
});



module.exports = router;

1
MongoDB的默认端口是27017,你想把它改成21017吗?尝试使用mongoose.connect('mongodb://localhost:27017/');或者mongoose.connect('mongodb://localhost:21017/'); - Jorge Hess
当未传递特定端口时,Mongoose连接方法会使用默认的Mongo端口(如您所说- 21017)。您可以从错误消息中看到它(它正在尝试连接到127.0.0.1:21017)。 - Ivan Matveev
是的,我已经尝试了两种方法,但仍然遇到相同的错误。 - user6377738
我需要调整一些配置吗? - user6377738
7个回答

0
将你的Mongoose连接代码更改为:
mongoose.connect('mongodb://localhost:27017/yourdb');

0
获取这种错误的原因:{MongoError: connect ECONNREFUSED 127.0.0.1:21017},是因为Mongo进程没有在该端口上运行,或者根本没有运行。 首先检查mongo进程是否正在运行:
service mongod status //for Linux machine

第二步 - 检查Mongo进程的端口:

nmap -p- localhost //for Linux machine

你会如何在Windows上进行检查? - user6377738
也许可以使用Mongo shell。 - Ivan Matveev
是的,我的Mongo shell打不开。它只打开了5秒钟就关闭了。 - user6377738

0

遇到了同样的问题,是由于硬盘空间不足导致的。这导致mongod在重新启动后一直崩溃。

只需增加服务器的内存空间,并重新启动mongod(手动或通过自动重新启动服务时重新启动)即可解决此问题。


0
这个错误可以通过将以下代码中的 localhost 替换为本地主机地址 127.0.0.1 来解决。 mongoose.connect('mongodb://localhost/'); 尝试这样做 -> mongoose.connect('mongodb://127.0.0.1/');

0

我有同样的错误,看起来是在预览mongodb会话中关闭不良,我刚刚做了一下,结果很好

sudo service mongod stop
sudo service mongod start

0

试试这个

var express = require('express');
var router = express.Router();
var mongoose = require('mongoose');
$ = require('cheerio');

/* GET home page. */


mongoose.connect('mongodb://localhost:27017/db-dev');

或者尝试使用

mongoose.connect('mongodb://0.0.0.0:27017/db-dev');

0

对于Windows系统,打开另一个终端并进入应用程序的根目录。然后运行$ mongod.exe。我建议将以下内容放入test.js文件中:

var mongoose = require('mongoose');    
mongoose.connect('mongodb://localhost:27017/test.js');


var db = mongoose.connection;
db.on("error", function(error){
console.error("Connection error : " + error)
});
db.once('open', function() {
  console.log('Connected to database');
  db.close(function(){
        console.log("db connection closed");
  });
});

回到原始终端并输入 $ node test.js


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接