2016-05-29 5 views
0

Я написал веб-приложение узла и создал базу данных mongoDb в своей локальной системе. Я использую следующий код для подключения к локальной MongoDB из узла JSНе удается получить или вставить данные в mongodb с помощью mongoose

var mongoose = require('mongoose'); 
mongoose.connect('mongodb://localhost/db_name'); //local 

И все работает отлично на моей локальной машине. Поэтому я продолжил работу и создал учетную запись mlab и создал базу данных. Но когда я попытался запустить код, изменив строку подключения, соединения все еще установлены, я полагаю. Но запросы на поиск и сохранение не вызывают обратные вызовы, даже ошибки не появляются. Все запросы истекают.

var mongoose = require('mongoose'); 
mongoose.connect("mongodb://user:[email protected]:36789/db_name"); //mlab 

Еще одна вещь, которую я заметил, это то, что я не могу выполнить ping ds036789.mlab.com. Но TCP-соединения преуспевают, когда я пробовал команду nc

nc -w 3 -v ds036789.mlab.com 36789 

Я даже попробовал развернуть на лазурную. Это тоже не работает. Буду признателен за любую оказанную помощь. Благодарю.

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

connection error: { [MongoError: auth failed] name: 'MongoError', ok: 0, errmsg: 'auth failed', code: 18 } 

Учетные данные верны.

ответ

0

Я понял вопрос, это не проблема с полномочиями. Это была проблема с версией мангуста. Используемая версия мангуста не поддерживала аутентификацию. Мне пришлось удалить пакет и переустановить последнюю версию. с

node install [email protected] 

Надеюсь, это поможет кому-то. И спасибо за ответы :)

0

От ошибки mesasge кажется, что вы используете недопустимый AUTH деталь

Это, скорее всего, произойдет, когда вы не создаете имя пользователя и пароль для individual database, т.е. db_name в вас деле.

Проверьте учетную запись mLabs и создайте имя пользователя и пароль для базы данных db_name и обновите строку подключения.

0

Согласно информации об ошибке, как сказал @Astro, это вызвано использованием недопустимого auth user/password, который будет создан для базы данных.

Создал ли новый пользователь для подключения базы данных, а не пользователя пользователя для mlab? Как показано на рисунках ниже.

Рис 1. Пользователя базы данных требуются для подключения enter image description here

Рис 2. Списка пользователей для базы данных enter image description here

Надеется, что это помогает.

Смежные вопросы