簡體   English   中英

MongoDB - MongoError:連接 ECONNREFUSED

[英]MongoDB - MongoError: connect ECONNREFUSED

我在嘗試連接 mongoDB 時一直收到錯誤消息。我知道有很多與此類似的問題,我已經檢查了所有問題,但沒有找到解決我的問題的方法。

這是確切的錯誤:

連接錯誤:{ MongoError:連接 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;

出現這種錯誤的原因:{MongoError: connect ECONNREFUSED 127.0.0.1:21017},是 Mongo 進程沒有在該端口上運行,或者根本沒有運行。 首先檢查 mongo 進程是否正在運行:

service mongod status //for Linux machine

其次 - 檢查 mongo 進程的端口:

nmap -p- localhost //for Linux machine

對於 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

我有同樣的錯誤,它看起來像我剛剛做的預覽 mongodb 會話中的錯誤關閉並且效果很好

sudo service mongod stop
sudo service mongod start

有同樣的問題,由硬盤驅動器內存空間不足引起。 這導致 mongod 在重新啟動后不斷崩潰。

只需增加服務器的內存空間,然后重新啟動 mongod(手動或在服務自動重新啟動時通過重新啟動)即可解決問題。

試試這個

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

將您的貓鼬連接代碼更改為:

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

這個錯誤可以通過將下面代碼中的localhost替換為localhost的地址127.0.0.1來解決。 mongoose.connect('mongodb://localhost/');
試試這個 -> mongoose.connect('mongodb://127.0.0.1/');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM