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

SailsJS session variable not able to be set on first page load

这是控制器:

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 方法中的表单。

但是,在重新启动服务器后加载第一个页面时,未设置会话变量。如果我对验证码方法进行后续调用,则会设置会话变量并可以使用。

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

有什么想法吗?

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

离开这里让其他人摸不着头脑。