[英]Unhandled rejection MongoError: cannot connect to server in MongoDB
[英]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.