2012-09-23 16 views
5

Sto usando ExpressJS e Mongoose.Come configurare connect-mongo (o utilizzare le sessioni in mangusta)

var MongoStore = require('connect-mongo')(express); 
var sessionStore = new MongoStore({db: 'myappsession'}); 

app.use(express.session({ secret: "myappsecret", store:sessionStore })); 

Ciò risulta in un "Errore Mongo: errore: db non autorizzato". Suppongo che avrei bisogno di passarle le credenziali di accesso. Ho anche,

var mongoose = require('mongoose'); 
var db = mongoose.createConnection('<omitted username, password and address>', 'myappsession'); 

sto indovinando collegare-mongo bisogno di questa informazione per accedere al mio database per creare l'archivio sessione?

Domanda

Come faccio a passare connect-Mongo il log-in informazioni? O sto sbagliando?

risposta

3

Nel mio caso, dal momento che sto già utilizzando attivamente Mongoose, ho finito usando una soluzione per Mongoose.

1. Installare session-mangusta

https://github.com/donpark/session-mongoose

2. Utilizzare questo tutorial come guida.

http://mikevalstar.com/Blog/107/Coding_with_Nodejs_Part_31_Mongoose_Sessions

3. In particolare, ho avuto un problema con questa linea del tutorial.

url: "mongodb://localhost/mv" 

Questo dovrebbe essere qualcosa di simile,

url: "username:[email protected]/testdatabase" 

Le sessioni sono quindi memorizzati nel database denominato "" testdatabase" nella raccolta "sessioni".

Spero che questa risposta di aiuto a qualcuno evitare un po 'di frustrazione :)

+0

Cura per spiegare w hy questa non è una buona soluzione? In realtà sto usando questo nella mia app. – Legendre

+0

sì, l'URL del tutorial non funziona – ktkaushik

+0

@ktkaushik - il tutorial usato per funzionare. Puoi google per "Coding_with_Nodejs_Part_31_Mongoose_Sessions" e accedere a una versione memorizzata nella cache. – Legendre

1

È necessario utilizzare un URI MongoDB. Guardate la documentazione qui: http://www.mongodb.org/display/DOCS/Connections

mongodb://[username:[email protected]]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]] 

Quindi dato ci si connette a un singolo server, è sufficiente utilizzare:

mongoose.createConnection('mongodb://[username:[email protected]]host1[:port1]', 'myappsession'); 
+0

+1 Grazie, ma ho trovato un'altra soluzione per mangusta. Lo condividerò scrivendo la mia risposta più tardi .. – Legendre

Problemi correlati