2016-05-04 2 views
0

Я пытаюсь войти и обновить мою базу данных mongo на стороне сервера и возникли проблемы. Я бегу на Heroku, поэтому я думаю, что, возможно, я не вошел в систему как пользователь. Я начал с этого node login repo, но изменил несколько вещей, чтобы заставить его работать над героку. Я пытаюсь войти в системе как переменный, так как:MongoDB как переменная в Node.js

var MongoDB  = require('mongodb').Db; 
var Server  = require('mongodb').Server;  
var db = new MongoDB(dbName, new Server(dbHost, dbPort, {auto_reconnect: true}), {w: 1}); 

При попытке зарегистрировать пользователь, я вижу пост сделал в журналах Heroku с 400 ответа вместо 200 ОК, заставляя меня думать, что я не попадая в базу данных. Я установил свои dbName, dbHost и dbPort значениям mongolab, но я не уверен, где войти в учетную запись пользователя. Я создал сеанс с использованием URI

new MongoStore({ url: 'mongodb://username:[email protected]:port/database' }) 

, который не работал, прежде чем я добавил имя пользователя и пароль, который заставляет меня думать, что это то, что я пропускаю с переменной. Итак, как мне добавить имя пользователя и пароль в переменную db?

+0

Heroku имеет встроенную поддержку MLAB легко создавать и подключать к MongoDB из ваших приложений. Для этого требуется кредитная карта в файле, но вы можете выбрать бесплатный план без каких-либо сборов. Будет ли это помогать или вам нужно подключиться к _a_ конкретной размещенной базе данных? –

+0

Я использую mLab yeah и подключаюсь к сеансу с этим вторым фрагментом кода. Они показывают, как [подключиться к Ruby здесь] (https://devcenter.heroku.com/articles/mongolab#mongodb-ruby-driver), но я не уверен, как дублировать это с помощью js – Tri42

ответ

0

Вы можете использовать MongoClient объект «» MongoDB библиотеки и поставить URL аутентификации в качестве параметра в функции подключения

var MongoClient = require('mongodb').MongoClient; 
var url = 'mongodb://username:[email protected]:port/database'; 
MongoClient.connect(url, function(err, db) { 
assert.equal(null, err); 
console.log("Connected correctly to server."); 
}); 
+0

. Тогда я вызывал переменную для коллекция var accounts = db.collection ('accounts'); так что я мог бы отключить 'db' там с 'MongoClient'? – Tri42

+0

вы можете переключиться на другую базу данных, используя «MongoClient», вот ссылка на уже заданный вопрос [ссылка] (http://stackoverflow.com/questions/21476134/mongodb-express-how-to-switch-database-after-connecting -via-connect) – Saubar

+0

Ну, это не совсем доступ к другой базе данных. В основном я пытаюсь получить доступ к коллекциям и функциям экспорта [например, это] (https://github.com/braitsch/node-login/blob/master/app/server/modules/account-manager.js#L15), который кажется быть старым драйвером для узла. Есть ли примеры правильного пути для этого с новым драйвером? Я пока не смог найти ни одного. – Tri42

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