Приложение не подключается к базе данных Мангуста
У меня возникли проблемы с подключением к моей базе данных Мангуст. Я просто не знаю, если что-то не так с моим кодом или если мне нужно установить больше пакетов мангуста. Или, возможно, переустановить все. Кто-нибудь может сказать мне, в чем дело?
Проблемными линиями являются:
var mongoose = require('mongoose');
mongoose.connect('mongodb://node:[email protected]:27017/Iganiq8o'); // connect to our database
Предполагается ли, что приложение подключается к базе данных автоматически? Или мне нужно запустить mongod в фоновом режиме? Мое приложение работает идеально и подключается к серверу без этих строк. А здесь это ошибка из командной строки:

Может кто-нибудь объяснить, что это за ошибка и как я могу ее исправить? Я не понимаю, что здесь написано. Большое спасибо.
Полный код:
// server.js
// BASE SETUP
// =============================================================================
// call the packages we need
var express = require('express'); // call express
var app = express(); // define our app using express
var bodyParser = require('body-parser');
// configure app to use bodyParser()
// this will let us get the data from a POST
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
var port = process.env.PORT || 8080; // set our port
var mongoose = require('mongoose');
mongoose.connect('mongodb://node:[email protected]:27017/Iganiq8o'); // connect to our database
// ROUTES FOR OUR API
// =============================================================================
var router = express.Router(); // get an instance of the express Router
// test route to make sure everything is working (accessed at GET http://localhost:8080/api)
router.get('/', function(req, res) {
res.json({ message: 'hooray! welcome to our api!' });
});
// more routes for our API will happen here
// REGISTER OUR ROUTES -------------------------------
// all of our routes will be prefixed with /api
app.use('/api', router);
// START THE SERVER
// =============================================================================
app.listen(port);
console.log('Magic happens on port ' + port);
4 ответов:
Похоже, что вы использовали Этот блог в качестве ссылки. Я сделал это также, и он не подключился к моей базе данных модуля, как я ожидал, я дважды проверил пользователя и пароль, чтобы убедиться, что все в порядке, и попытался подключиться с помощью оболочки mongo с моей машины с помощью:
mongo jello.modulusmongo.net:27017/your_url -u <user> -p <pass>И это сработало, поэтому я был озадачен и обнаружил, что то, что решает проблему, - это обновление мангуста до
3.8.0вместо использованного3.6.13, и это сработало безупречно, он подключается к модулю база данных, хотя я не знаю, что происходит и почему это происходит, это должно быть что-то с Мангустом.
Проблема, по-видимому, заключается в том, что БД, к которой пытается подключиться ваше приложение, имеет другую комбинацию паролей. Вам нужна правильная комбинация пользователь / пропуск.
Ваш код будет работать без этих двух строк, но ваше приложение не будет иметь поддержки БД.
При желании вы можете продолжить выполнение mongodb локально. Стандартным способом было бы управление моногодом.exe и создание вашей БД и изменение
mongoose.connect('mongodb://node:[email protected]:27017/Iganiq8o')наmongoose.connect('mongodb://localhost/<your-db>'). Обратите внимание, что БД в данном случае не имеет безопасность (пользователь / пропуск).
Проблема выглядит так, как будто вы пытаетесь подключить базу данных, которой нет в вашем MongoDB. Я также столкнулся с той же проблемой и решил ее следующим образом:
- создал базу данных в монго.
- изменил путь к
mongoose.connect('mongodb://localhost:27017/db_name');- запустил MongoDB с помощью команды mongo.
Ошибка связана с аутентификацией в mongoDB 'MongoError: auth fails'.
Возможно, user: pass 'node: node' не существует в вашей локальной базе данных, проверьте, существует ли этот пользователь в вашем mongoDB ,или создайте конкретный с помощью user: pass, который вы хотите.
Смотрите getUsers docs of mongoDB
Удачи!
Comments