微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

sails.js – Sailsjs会话错误

继续得到这个警告&我解除应用程序时无法解决问题.希望有人对此有所了解:

warn: Socket disconnected,but session Could not be loaded to pass to configured disconnect handler: sails.config.sockets.ondisconnect(). Will pass a fake,empty session as argument to lifecycle callback. Details:
Error: Session Could not be loaded
at _createError (/Users/JAT/DropBox/Bottage/bottage_app/node_modules/sails/lib/hooks/session/index.js:271:21)
at Immediate._onImmediate (/Users/JAT/DropBox/Bottage/bottage_app/node_modules/sails/lib/hooks/session/index.js:274:13)
at processImmediate [as _immediateCallback] (timers.js:358:17) { [Error: Session Could not be loaded] code: ‘E_SESSION’ }

wZVanG编辑:问题已经解决,但是我想知道我是否有正确的配置:

sailsrc(我从认创建的Sails中删除了模型,因为我只使用mongoose),但是我没有删除它们的套接字:

"hooks": {"orm": false,"pubsub": false,"blueprints": false}

/config/sessions.js

adapter: 'mongo',host: 'localhost',port: 27017,db: 'page',collection: 'sessions',

这将它存储在我的Mongo数据库中:

{
    "_id" : "Nt90RxTcHkOT9aM3qJ1QzxyHlnvFoUuw","session" : "{\"cookie\":{\"originalMaxAge\":null,\"expires\":null,\"httpOnly\":true,\"path\":\"/\"},\"passport\":{}}","expires" : ISODate("2015-07-24T10:59:42.551Z")
}

It is correct?

解决方法

消息的原因是,当您重新启动sails时,会话信息在服务器端被删除,但客户端仍然有会话cookie,当它重新连接时,它会重用前一个会话cookie来识别哪个不再有效,因此服务器记录此警告.

有许多方法可以阻止此消息:

>使用外部会话存储(例如redis)将会从sails中分离会话数据,并且即使在重新启动sails时也会保留它.见这里:http://sailsjs.org/documentation/reference/configuration/sails-config-session
>如果不需要socket.io,则从项目中删除它以删除客户端删除资产/ js / dependencies / sails.io.js和sails.io.js包含在tasks / pipeline.js中的文件以及用于服务器端的文件

将此添加到.sails.rc:

{
    "hooks": {
      "sockets": false,"pubsub": false 
     }
  }

>只需重新打开浏览器窗口即可启动新的套接字会话

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐