2016-11-05 5 views
0

Я создал простую службу в Ubuntu 16.04 с узлом mongo db и выражаю, чтобы возвращать данные в угловое приложение.Bitnami Meanstack Connection Mongoose

У меня есть файл server.js, который подключается к локальному экземпляру mongodb с базой данных, называемой игрой, и коллекцией, называемой игроками. Он отлично работает на моей локальной машине. Тем не менее, я пытаюсь развернуть его с изображением среднего стека Bitnami на amazon ec2. (bleh mouth full). Я правильно установил порты в соответствии с this guide, и я могу подключиться к нему удаленно. Однако я не могу заставить mongoose подключаться к любой базе данных. вот мой код, который работает на моей локальной машине.

mongoose.connect('mongodb://localhost:27017/game'); 

router.route('/player') 



.get(function(req, res) { 
    console.log(mongoose.connection.readyState); 
    Player.find({"player":user,"password":password},function(err, Test) { 
     if (err) 
      res.send(err); 

     res.json(Test); 
    }); 
}); 

А вот мой скорректированный код для стека изображения среднего

mongoose.connect('mongodb://root:"[email protected]:27017/game'); 
router.route('/player') 
.get(function(req, res) { 

console.log(mongoose.connection.readyState); 
    Player.find({"player":user,"password":password},function(err, Test) { 
     if (err) 
      res.send(err); 

     res.json(Test); 
    }); 
}); 

На моей локальной машине я получаю значение 1 на console.log и нулевое значение на среднем стеке изображения. Я не уверен, как подключиться к монгому с битноми с мангустом. Я проверил, что игра существует и у меня есть данные, которые я хочу.

ответ

0

Я нашел исправление Хотя я еще не совсем понял это. Он пришел из руководства, которое я опубликовал here. Сначала мне пришлось не комментировать раздел mongodb.conf, который говорит noauth = true, а затем закомментируйте строку, которая гласит auth = true. затем перезапустить Монго, и создать нового пользователя с правами на чтение и запись базы данных ввода нужно использовать как этот

db.createUser({ 
    user: "NEW USERNAME", 
    pwd: "NEW PASSWORD", 
    roles:[ 
      { 
        "role" : "readWrite", 
        "db": "game" 
      } 
    ]}) 

После создания пользователя я отменить то, что я сделал, чтобы noauth = true и auth = true, и перезапустить MongoDB , Тогда я могу соединиться с мангуста как этот

mongoose.connect('mongodb://NEW USERNAME:NEW [email protected]:27017/game'); 
0

С MongoDB 3.0, они добавили новый механизм аутентификации для MongoDB (подробнее в ссылках ниже).

Сведения о проверке подлинности: https://docs.mongodb.com/manual/core/authentication/

Как использовать новый механизм аутентификации: https://www.mongodb.com/blog/post/improved-password-based-authentication-mongodb-30-scram-explained-part-2

В связи с этим, руководство предусматривает, что обходной путь, чтобы получить соединение с базой данных. Теперь вы создали этого пользователя с привилегиями «readWrite» в своей базе данных, чтобы вы могли его использовать.