2015-06-16 22 views
7

Ho cercato di usare mangusta (modulo per node.js e mongodb). E ho cercato di stabilire una connessione con mongolab attivo e funzionante. Ho provato quanto segue nella parte superiore del mio file app.js, ma non riuscivo a entrare nella funzione db.on.Come ottenere node.js per connettersi a mongolab usando mangusta

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"); 

}); 

mia uscita del terminale era

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

Il debugger sembrava anche di saltare la funzione (le mie capacità di debug su WebStorm sono limitati però)

Anche questo non ha funzionato in modo più semplice modo:

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"); 

Questo mi ha dato la stessa uscita terminale.

Mi piacerebbe sapere quali passi devo fare per iniziare effettivamente a parlare con il mio database mongolab. Inoltre non vedo alcuna collezione creata su mongolab.

risposta

8

Prova utilizzando

db = mongoose.connect(uri); 

invece di

db = mongoose.createConnection(uri); 
+1

abbiamo ottenuto un vincitore! – Bren