2015-06-16 2 views
7

Я пытался использовать mongoose (модуль для node.js и mongodb). И попытался подключиться к монголабу. Я попробовал следующее в верхней части моего файла app.js, но я не мог войти в функцию db.on.Как получить node.js для подключения к mongolab с помощью mongoose

global.mongoose = require('mongoose'); 
var uri = 'mongodb://username:password#####@ds.mongolab.com:#####/db'; 
global.db = mongoose.createConnection(uri); 
global.Schema = mongoose.Schema; 
db.on('error', console.error.bind(console, 'connection error:')); 
db.once('open', function (callback) { 
    console.log("db up") 
    var userSchema = new Schema({ 
     name : { type: String, default: '' } 
    , password : { type: String, default: '' } 
    }); 
    var userModel = mongoose.model('User', userSchema); 
    var test = new userModel({name: "test", password: "test"}) 

    console.log("me: " + test) 

    test.save(function (err, test) { 
    console.log("saved?") 
    if (err) { 
     console.log("error"); 
     return console.error(err); 
    } 
    console.log("saved!") 
    }); 

    console.log("after save"); 

}); 

Мой терминальный вывод был

/usr/local/bin/node bin/www 
me: { _id: 557f93a8a8b4b8628095bd01, password: 'test', name: 'test' } 
after save 

отладчик также, казалось, пропустить функцию (мои навыки отладки на WebStorm ограничены, хотя)

Это также не работает в более прямой способ:

mongoose = require('mongoose'); 
var uri = 'mongodb://username:password.mongolab.com:#####/db'; 
db = mongoose.createConnection(uri); 
Schema = mongoose.Schema; 

    var userSchema = new Schema({ 
     name : { type: String, default: '' } 
    , password : { type: String, default: '' } 
    }); 
    var userModel = mongoose.model('User', userSchema); 
    var test = new userModel({name: "test", password: "test"}) 

    console.log("me: " + test) 

    test.save(function (err, test) { 
    console.log("saved?") 
    if (err) { 
     console.log("error"); 
     return console.error(err); 
    } 
    console.log("saved!") 
    }); 
    console.log("after save"); 

Это дало мне тот же вывод терминала.

Я хотел бы знать, какие шаги мне нужно предпринять, чтобы начать разговор с моей базой данных mongolab. Также я не вижу никакой коллекции, созданной на монголабе.

ответ

8

Попробуйте использовать

db = mongoose.connect(uri); 

вместо

db = mongoose.createConnection(uri); 
+1

мы получили победитель! – Bren

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