MongoNetworkError: не удалось подключиться к серверу [localhost: 27017] при первом подключении [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]

Я новичок в nodeJS, начал учиться, следуя трейлеру на youtube, все идет хорошо, пока я не добавил функцию connect, если mongodb,

mongo.connect("mongodb://localhost:27017/mydb")

когда я запускаю свой код на cmd (node start-app), получите следующую ошибку,

MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017]

Может ли кто-нибудь объяснить мне, какой шаг я пропустил? мой код:

var express = require("express");
var MongoClient = require('mongodb');
var url = "mongodb://localhost:27017/mydb";
var webService = require("./webService");
var server = express();

MongoClient.connect(url, function (err, db) {
    if (err) throw err;
    console.log("Database created!");
    db.close();
});

server.use(express.urlencoded({ extended: true }));

server.set('views', __dirname);

server.get('/', function (request, response) {
    response.sendFile(__dirname + '/MainPage.html');
});

server.get('/Sign', function (request, response) {
    response.render(__dirname + '/Sign.ejs');
});

server.post("/signUp", webService.signUp);

server.post("/createUser", webService.createUser);

server.listen(5500);

Ответы

Ответ 1

Сначала необходимо установить сервер базы данных MongoDB в свою систему и запустить его.

Используйте ссылку ниже для установки MongoDB

https://docs.mongodb.com/manual/installation/

Ответ 2

Попробовав КАЖДОЕ решение google появилось при переполнении стека, я обнаружил, какова моя конкретная проблема. Я давно редактировал файл моих хостов, чтобы позволить мне получить доступ к моему локальному хосту из моего виртуального бокса.

Удаление этой записи разрешило это для меня, а также правильную установку mongoDB из ссылки, приведенной в вышеупомянутом решении, и включая правильный код обработки обещаний:

mongoose.connect('mongodb://localhost/testdb').then(() => {
console.log("Connected to Database");
}).catch((err) => {
    console.log("Not Connected to Database ERROR! ", err);
});

Ответ 3

Многие из них не добавляют это, особенно в AWS EC2 Instance, у меня была та же проблема и пробовал разные решения. Решение: в одном из URL моей базы данных внутри кода отсутствовал этот параметр 'authSource', добавление этого сработало для меня.

mongodb://myUserName:[email protected]:27017/databaseName?authSource=admin

Ответ 4

Я столкнулся с той же проблемой, но после большого количества RND. Я обнаружил, что проблема в этом, поэтому запустите эту команду на вашем терминале.

sudo service mongod start

Ответ 5

Следуя логике ответа @CoryM выше:

После попытки КАЖДОГО решения, которое придумал Google при переполнении стека, я обнаружил, в чем заключалась моя конкретная проблема. Я давно отредактировал свой файл hosts, чтобы я мог получить доступ к своему локальному хосту из моей виртуальной коробки.

Удаление этой записи решило это для меня...

Я также отредактировал свой файл hosts для установки Python Machine Learning 2 месяца назад. Поэтому вместо того, чтобы удалить его, потому что он мне все еще нужен, я использую 127.0.0.1 вместо localhost и это сработало:

mongoose.connect('mongodb://127.0.0.1/testdb')

Ответ 6

Это произошло со мной, и я узнал, что это связано с неправильным подключением к Интернету. Если я использую общественный Wi-Fi у себя дома, который блокирует различные сайты по соображениям безопасности, Монго отказывается подключиться. Но если бы я использовал свои собственные мобильные данные, я мог бы подключиться к базе данных.

Ответ 7

просто запустите mongod в терминале в базовой папке, если все было настроено как установка mongo db и клиент для него, как mongoose. После запуска команды запустите файл проекта, над которым вы работаете, а затем ошибка не должна появляться.

Ответ 8

Вы можете проверить детали ошибки, выполнив эту команду

sudo service mongod status

если ошибка что-то вроде этого

  • Не удалось отсоединить файл сокета /tmp/mongodb-27017.sock Неизвестная ошибка
  • Фатальное утверждение 40486 на странице src/mongo/transport/transport_layer_asio.cpp 670

просто запустить это позволит решить вашу проблему

rm/tmp/mongodb-27017.sock

Ответ 9

сначала создайте папку по командной строке mkdir C:\data\db (это для базы данных), затем запустите команду mongod --port 27018 по одной командной строке (режим администрирования) - вы можете указать номер порта имени по вашему желанию

Ответ 10

1) Если вы не установили mongodb, установите его.

2) открыть новый терминал, набрав "монго". Это соединит вас с экземпляром MongoDB, работающим на вашем локальном хосте с портом по умолчанию 27017:

Ответ 11

Проверьте, правильно ли установлена БД Mongo в вашей системе. Перейдите на диск C и проверьте наличие папки Mongo DB в файлах программы. Если вы этого не нашли, пожалуйста, установите его снова и попробуйте запустить его.

Ответ 12

У меня была эта проблема во время работы в местном Starbucks, и я вспомнил об этом, когда я изначально настраивал свою базу данных через Mongo Atlas. Я установил свой IP-адрес, чтобы иметь возможность доступа к базе данных. Просмотрев несколько тем, я изменил свой IP-адрес в Atlas, и проблема исчезла. Надеюсь, это кому-нибудь поможет.

Ответ 13

Мой случай был немного другим. После перезапуска системы я не занес белый список своего IP-адреса в Mongo во время локальной разработки.

Select Network Acess > Add IP Address > Add your current IP Address

Ответ 14

mongoose.connect('mongodb://localhost:27017/').then(() => {
console.log("Connected to Database");
}).catch((err) => {
console.log("Not Connected to Database ERROR! ", err);
});

Лучше просто подключитесь к локальной базе данных Mongoose и создайте свои собственные коллекции. Не забудьте указать номер порта. По умолчанию: 27017.

Для лучшего просмотра загрузите Mongoose-compass для MongoDB UI.