2012-09-23 15 views
5

estoy usando ExpressJS y Mangosta.Cómo configurar Connect-mongo (o utilizar en sesiones mangosta)

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

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

Esto da como resultado un "MongoError: Error: dt no autorizado". Supongo que necesitaría pasar mis credenciales de inicio de sesión. También tengo,

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

estoy adivinando conectar-mongo necesita esta información para iniciar sesión en mi base de datos para crear el almacenamiento de sesión?

Pregunta

¿Cómo conectar pase-mongo la información de registro? ¿O estoy haciendo esto mal?

Respuesta

3

En mi caso, ya que estoy ya activamente usando Mangosta, acabé usando una solución para Mongoose.

1. Instalar sesión de mangosta

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

2. Uso este tutorial como guía.

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

3. En particular, tuve problema con esta línea del tutorial.

url: "mongodb://localhost/mv" 

Esto debe ser algo como,

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

Las sesiones se almacenan en la base de datos llamada "" TestDatabase" en la colección 'sesiones'.

Espero que esta respuesta ayuda a alguien evitar cierta frustración. :)

+0

Cuidado de explicar w ¿Por qué esta no es una buena solución? De hecho, estoy usando esto en mi aplicación. – Legendre

+0

sí, la url tutorial no funciona – ktkaushik

+0

@ktkaushik - tutorial que utiliza para trabajar. Puede buscar en Google "Coding_with_Nodejs_Part_31_Mongoose_Sessions" y acceder a una versión en caché. – Legendre

1

Es necesario utilizar un URI MongoDB. Mira la documentación aquí: http://www.mongodb.org/display/DOCS/Connections

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

Así dan se está conectando a un servidor único, simplemente use:

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

1 Gracias! Pero he encontrado otra solución para la mangosta. se compartirla escribiendo mi propia respuesta más tarde. – Legendre