SailsJS会话变量无法在第一页加载时设置

时间:2015-05-28 18:11:32

标签: session sails.js

这是控制器:

rusty = require('rusty')

module.exports =
  index: (req, res)->
    console.log('submit', req.session)
    res.json({})

  captcha: (req, res)->
    _ref = rusty.captcha({
      width: 120
      height: 50
      chars: 'abcdefghijklmnopqrstuvwxyz0123456789'
      length: 4
      fonts: ['20px sans', '20px bold sans']
      noise: 50
    })
    canvas = _ref.canvas
    code = _ref.code
    req.session.captcha = code
    return canvas.toBuffer (err, buffer)->
      return res.end(buffer)

我有captcha.png的路线,在这里调用验证码方法。图像src设置为captcha.png。我希望在调用captcha方法时,设置req.session.captcha,我可以使用它来验证index方法中的表单。

但是,在重新启动服务器后的第一页加载时,未设置会话变量。如果我后续调用captcha方法,则会设置会话变量并可以使用。

我假设这与未设置的会话cookie有关吗?或者还有其他我忽视的东西?

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

啊,只是一个发展问题。我已经从之前的会话中设置了cookie,这将使请求中的会话无效。实际上,将变量存储在错误的会话中。如果我在服务器重启后删除了我的cookie,那么一切都在页面刷新上。

离开这里让其他人挠头。