2012-09-23 8 views
5

J'utilise ExpressJS et Mongoose.Comment configurer connect-mongo (ou utiliser des sessions dans mongoose)

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

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

Cela se traduit par un "MongoError: Error: non autorisé db". Je suppose que je devrais lui transmettre mes identifiants de connexion. J'ai aussi,

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

Je suppose connecter-mongo a besoin de ces informations pour se connecter à ma base de données pour créer le magasin de la session?

Question

Comment puis-je connecter passe-mongo le journal en informations? Ou est-ce que je fais cela mal?

Répondre

3

Dans mon cas, puisque je suis déjà en utilisant activement Mongoose, j'ai fini en utilisant une solution pour Mongoose.

1. Installez session mangouste

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

2. Utilisez ce tutoriel comme guide.

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

3. En particulier, j'ai eu problème avec cette ligne du tutoriel.

url: "mongodb://localhost/mv" 

Cela devrait être quelque chose comme,

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

sessions sont ensuite stockées dans la base de données nommée "" testdatabase » dans la collection "sessions".

J'espère que cette personne d'aide réponse éviter une certaine frustration. :)

+0

Parce que ce n'est pas une bonne solution? Je l'utilise en fait dans mon application. – Legendre

+0

oui, l'url tutoriel ne fonctionne pas – ktkaushik

+0

@ktkaushik - ce tutoriel utilisé pour fonctionner. Vous pouvez google pour "Coding_with_Nodejs_Part_31_Mongoose_Sessions" et accéder à une version en cache. – Legendre

1

Vous devez utiliser un URI MongoDB. Regardez les docs ici: http://www.mongodb.org/display/DOCS/Connections

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

Donc, étant donné que vous vous connectez à un seul serveur, utilisez simplement:

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

+ 1 Merci! Mais j'ai trouvé une autre solution pour mongoose que je partagerai en écrivant ma propre réponse plus tard – Legendre

Questions connexes