这是控制器:
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有关吗?或者还有其他我忽视的东西?
有什么想法吗?
答案 0 :(得分:2)
啊,只是一个发展问题。我已经从之前的会话中设置了cookie,这将使请求中的会话无效。实际上,将变量存储在错误的会话中。如果我在服务器重启后删除了我的cookie,那么一切都在页面刷新上。
离开这里让其他人挠头。