Сессии в экспрессе не работают - PullRequest
0 голосов
/ 10 ноября 2011

Я пытаюсь использовать сеансы в Express. Я прочитал документы настолько тщательно, насколько мог, но не смог найти каких-либо различий между моим кодом и примерами - тем не менее сеансы не инициализируются.

Вот начало моего app.js

var express = require('express')
  , routes = require('./routes')
  , customRoutes = require('./routes/custom.js');

var app = module.exports = express.createServer();

// Configuration

app.configure(function(){
  app.set('views', __dirname + '/views');
  app.set('view engine', 'jade');
  app.use(express.bodyParser());
  app.use(express.methodOverride());
  app.use(app.router);
  app.use(express.static(__dirname + '/public'));

  app.use(express.cookieParser());  
  app.use(express.session({ secret: "keyboard cat" }));

});

app.configure('development', function(){
  app.use(express.errorHandler({ dumpExceptions: true, showStack: true })); 
});

app.configure('production', function(){
  app.use(express.errorHandler()); 
});

// Routes

app.get('/', function(req, res){

    req.session.something = "please?";
    req.session.boo = true;
    req.session.int = 100;

    console.log(req.session); // undefined
});

И когда я его запускаю: TypeError: Невозможно установить свойство 'нечто' из неопределенного.

Что проверить?

$ npm ls

ââ⬠cradle@0.5.7
â âââ vargs@0.1.0
â ââ⬠vows@0.5.13
â   âââ eyes@0.1.6
ââ⬠express@2.5.0
â âââ connect@1.7.2
â âââ mime@1.2.4
â âââ mkdirp@0.0.7
â âââ qs@0.3.2
âââ node-static@0.5.9

1 Ответ

5 голосов
/ 10 ноября 2011

Вы не указали хранилище сеансов, посмотрите пример здесь: https://github.com/alessioalex/Nodetuts/blob/master/express_samples/app.js#L15-31

Например, укажите хранилище памяти (это нормально только для разработки):

var MemStore = express.session.MemoryStore;
...
app.use(express.session({secret: 'secret_key', store: MemStore({
  reapInterval: 60000 * 10
})}));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...