2015-03-21 4 views
0

Вот мой первоначальный конфиг:Не удается получить печенье, чтобы отправить с просьбой Экспрессом 4

var session   = require('express-session'); 
var cookieParser = require('cookie-parser'); 
app.use(session({ 
    saveUninitialized: true, 
    resave: false, 
    genid: function(req) { 
    return Services.misc.generateUUID() 
    }, 
    secret: secret.toString() 
})); 
app.use(cookieParser(secret)); 

Тогда в моем контроллере (он направляется через мертвый простой маршрутизатор к контроллеру, который затем делает соответствующие действия, основанные на Rails, как соглашение об именовании) Я буду делать что-то вроде этого:

var TestController = { 
    noaction: function(req, res) { 
    var locals = { 
     billy: 'the goat' 
    } 

    console.log('req session'.red, req.session); 
    res.cookie('test_cookie', 'Wu Tang Clan'); 

    this.services.render.view(req, res, this, 200, locals); 
    } 

module.exports = TestController; 

Обратите внимание, что this.services.render.view просто услуга, так что я не должен писать res.render('./app/controllers' + controller + '/' + action)

Обратите внимание на строку res.cookie в контроллере (docs on express.js). Это то, что официальные документы говорят делать, и на самом деле, это затем установить в браузере:

enter image description here

Однако линия выше res.cookie является журнал, и я предположил бы, что мы должны были бы test_cookie в нем , но:

enter image description here

Все, что я получаю стандартный пустой куки каждый раз, даже если он установлен на стороне браузера и, предположительно, отправка.

Мой вопрос: Как правильно установить и получить файлы cookie в Express 4?

ответ

0

Вот ответ: каждый раз, когда nodemon перезапускает сервер для распространения изменений кода, сеансы очищаются.

1

Ваш код выглядит нормально, как сказал dsp_099, это, вероятно, нодем. Экспресс-сессия сохраняет данные в памяти, поэтому при перезапуске вашего сервера (с nodemon автоматически) все данные памяти сбрасываются.

Я хочу сохранить данные сеанса, даже если узел перезагружен, могу ли я предложить вам использовать redis-session (Redis Database)