Ответ 1
Сначала необходимо установить сервер базы данных MongoDB
в свою систему и запустить его.
Используйте ссылку ниже для установки MongoDB
Я новичок в 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);
Сначала необходимо установить сервер базы данных MongoDB
в свою систему и запустить его.
Используйте ссылку ниже для установки MongoDB
Попробовав КАЖДОЕ решение google появилось при переполнении стека, я обнаружил, какова моя конкретная проблема. Я давно редактировал файл моих хостов, чтобы позволить мне получить доступ к моему локальному хосту из моего виртуального бокса.
Удаление этой записи разрешило это для меня, а также правильную установку mongoDB из ссылки, приведенной в вышеупомянутом решении, и включая правильный код обработки обещаний:
mongoose.connect('mongodb://localhost/testdb').then(() => {
console.log("Connected to Database");
}).catch((err) => {
console.log("Not Connected to Database ERROR! ", err);
});
Многие из них не добавляют это, особенно в AWS EC2 Instance, у меня была та же проблема и пробовал разные решения. Решение: в одном из URL моей базы данных внутри кода отсутствовал этот параметр 'authSource', добавление этого сработало для меня.
mongodb://myUserName:[email protected]:27017/databaseName?authSource=admin
Я столкнулся с той же проблемой, но после большого количества RND. Я обнаружил, что проблема в этом, поэтому запустите эту команду на вашем терминале.
sudo service mongod start
Следуя логике ответа @CoryM выше:
После попытки КАЖДОГО решения, которое придумал Google при переполнении стека, я обнаружил, в чем заключалась моя конкретная проблема. Я давно отредактировал свой файл hosts, чтобы я мог получить доступ к своему локальному хосту из моей виртуальной коробки.
Удаление этой записи решило это для меня...
Я также отредактировал свой файл hosts для установки Python Machine Learning 2 месяца назад. Поэтому вместо того, чтобы удалить его, потому что он мне все еще нужен, я использую 127.0.0.1
вместо localhost
и это сработало:
mongoose.connect('mongodb://127.0.0.1/testdb')
Это произошло со мной, и я узнал, что это связано с неправильным подключением к Интернету. Если я использую общественный Wi-Fi у себя дома, который блокирует различные сайты по соображениям безопасности, Монго отказывается подключиться. Но если бы я использовал свои собственные мобильные данные, я мог бы подключиться к базе данных.
просто запустите mongod в терминале в базовой папке, если все было настроено как установка mongo db и клиент для него, как mongoose. После запуска команды запустите файл проекта, над которым вы работаете, а затем ошибка не должна появляться.
Вы можете проверить детали ошибки, выполнив эту команду
sudo service mongod status
если ошибка что-то вроде этого
просто запустить это позволит решить вашу проблему
rm/tmp/mongodb-27017.sock
сначала создайте папку по командной строке mkdir C:\data\db (это для базы данных), затем запустите команду mongod --port 27018 по одной командной строке (режим администрирования) - вы можете указать номер порта имени по вашему желанию
1) Если вы не установили mongodb, установите его.
2) открыть новый терминал, набрав "монго". Это соединит вас с экземпляром MongoDB, работающим на вашем локальном хосте с портом по умолчанию 27017:
Проверьте, правильно ли установлена БД Mongo в вашей системе. Перейдите на диск C и проверьте наличие папки Mongo DB в файлах программы. Если вы этого не нашли, пожалуйста, установите его снова и попробуйте запустить его.
У меня была эта проблема во время работы в местном Starbucks, и я вспомнил об этом, когда я изначально настраивал свою базу данных через Mongo Atlas. Я установил свой IP-адрес, чтобы иметь возможность доступа к базе данных. Просмотрев несколько тем, я изменил свой IP-адрес в Atlas, и проблема исчезла. Надеюсь, это кому-нибудь поможет.
Мой случай был немного другим. После перезапуска системы я не занес белый список своего IP-адреса в Mongo во время локальной разработки.
Select Network Acess > Add IP Address > Add your current IP Address
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.
Вам нужно установить или переустановить сервис MongoDB локально отсюда: https://www.mongodb.com/download-center/community?jmp=docs
или вы можете использовать мангуст на облаке отсюда: https://www.mongodb.com/cloud/atlas
эти 2 решения решили проблему для меня.