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 
     }
  }

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

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...