【问题标题】:MongoDB - MongoError: connect ECONNREFUSEDMongoDB - MongoError:连接 ECONNREFUSED
【发布时间】:2016-10-01 07:16:40
【问题描述】:

我在尝试连接 mongoDB 时不断收到错误消息。我知道有很多与此类似的问题,我已经检查了所有问题,但没有找到解决我的问题的方法。

这是确切的错误:

连接错误:{ MongoError: connect ECONNREFUSED 127.0.0.1:21017 名称:'MongoError' 消息:连接 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;

【问题讨论】:

  • Mongo默认端口是27017,你把端口改成21017了吗?试试mongoose.connect('mongodb://localhost:27017/'); mongoose.connect('mongodb://localhost:21017/');
  • 当特定端口未通过时,Mongoose 连接方法使用默认的 Mongo 端口(如您所悲哀 - 21017)。您可以从错误消息中看到它(它正在尝试连接到 127.0.0.1:21017)。
  • 是的,我已经尝试了两种方法,但仍然遇到同样的错误
  • 我需要对配置进行一些调整吗?

标签: javascript node.js mongodb express database


【解决方案1】:

出现这种错误的原因:{MongoError: connect ECONNREFUSED 127.0.0.1:21017},是 Mongo 进程没有在该端口上运行,或者根本没有运行。 首先检查 mongo 进程是否正在运行:

service mongod status //for Linux machine

第二个 - 检查 mongo 进程的端口:

nmap -p- localhost //for Linux machine

【讨论】:

  • 您将如何使用 Windows 进行检查?
  • 也许使用 mongo shell。
  • 是的,我的 mongo shell 没有打开。它打开大约 5 秒钟然后关闭。
【解决方案2】:

对于 Windows,打开另一个终端并 cd 进入应用程序根目录。然后,运行$ 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

【讨论】:

    【解决方案3】:

    我遇到了同样的错误,看起来我刚刚在预览 mongodb 会话中关闭不好,结果很好

    sudo service mongod stop
    sudo service mongod start
    

    【讨论】:

      【解决方案4】:

      有同样的问题,由硬盘驱动器内存空间不足引起的。这导致 mongod 在重新启动后不断崩溃。

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

      【讨论】:

        【解决方案5】:

        试试这个

        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');
        

        【讨论】:

          【解决方案6】:

          将您的猫鼬连接代码更改为:

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

          【讨论】:

            猜你喜欢
            • 2016-08-19
            • 2018-03-13
            • 1970-01-01
            • 2016-12-07
            • 2020-04-10
            • 2022-12-30
            • 1970-01-01
            • 2022-11-09
            • 1970-01-01
            相关资源
            最近更新 更多