сеансы доступа connect-mongodb - PullRequest
0 голосов
/ 17 октября 2011

В моем приложении node.js я использую expressJS и connect-mongodb для хранилища сеансов.Я установил connect-mongodb так, чтобы он указывал на мой локальный локальный MongoDB (например, mongoStore (mongodb: // localhost / myAppDB ')

Вся моя аутентификация пользователя работает должным образом, но я не вижу коллекции сеансов вмой mongodb. Например, когда я запускаю в терминале следующее:

$ mongo myAppDB
 > show collections

Я вижу всю свою другую коллекцию, но нет сеансов.

Должен ли я видеть их таким образом?

Я просто хочу иметь возможность получить доступ к своему сеансу с помощью connect.sid, но поскольку в mongoStore нет метода get, я пытаюсь получить сеанс непосредственно из базы данных

1 Ответ

1 голос
/ 14 ноября 2011

Согласно документации connect-mongodb (https://github.com/masylum/connect-mongodb) версия 1.x не совместима с версиями 0.x. В более ранних версиях вы могли передавать URL-адрес. Теперь вы должны передать соединение mongodb или конфигурацию сервера.

Ниже показано, как я это делаю в своем приложении (по сути скопировал пример в документах connect-mongodb):

var express = require('express');
var Db = require('mongodb').Db;
var Server = require('mongodb').Server;
var server_config = new Server('localhost', 27017, {auto_reconnect: true, native_parser: true});
var mongoDatabase;

mongoDatabase = new Db(app.set('db-name'), server_config, {});

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.bodyParser());
  app.use(express.cookieParser()); 
  app.use(express.session({
    store: new mongoStore({ db: mongoDatabase }),
    secret: 'topsecret'
  }));
  app.use(express.methodOverride());
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...