最初,此错误消息开始很少出现,但开始出现得更规则,现在运行应用程序时出现4/5次。
我正在使用Mongo处理会话存储,据我所知,TTL索引用于使会话数据过期。
/home/dan/dev/audio-wave/node_modules/connect-mongo/lib/connect-mongo.js:161
throw new Error('Error setting TTL index on collection : ' + s
^
Error: Error setting TTL index on collection : sessions
at /home/dan/dev/audio-wave/node_modules/connect-mongo/lib/connect-mongo.js:161:23
at /home/dan/dev/audio-wave/node_modules/connect-mongo/node_modules/mongodb/lib/mongodb/db.js:1404:28
at /home/dan/dev/audio-wave/node_modules/connect-mongo/node_modules/mongodb/lib/mongodb/db.js:1542:30
at /home/dan/dev/audio-wave/node_modules/connect-mongo/node_modules/mongodb/lib/mongodb/cursor.js:159:22
at commandHandler (/home/dan/dev/audio-wave/node_modules/connect-mongo/node_modules/mongodb/lib/mongodb/cursor.js:678:48)
at Db._executeQueryCommand (/home/dan/dev/audio-wave/node_modules/connect-mongo/node_modules/mongodb/lib/mongodb/db.js:1802:12)
at Cursor.nextObject (/home/dan/dev/audio-wave/node_modules/connect-mongo/node_modules/mongodb/lib/mongodb/cursor.js:729:13)
at Cursor.toArray (/home/dan/dev/audio-wave/node_modules/connect-mongo/node_modules/mongodb/lib/mongodb/cursor.js:158:10)
at Cursor.toArray (/home/dan/dev/audio-wave/node_modules/connect-mongo/node_modules/mongodb/lib/mongodb/scope.js:10:20)
at /home/dan/dev/audio-wave/node_modules/connect-mongo/node_modules/mongodb/lib/mongodb/db.js:1541:65
这是将其绑定在一起的代码
var sessionStore = new MongoStore({ db: 'audio-drop' })
, cookieParser = express.cookieParser('waytoblue')
, SessionSockets = require('session.socket.io')
, sockets = new SessionSockets(io, sessionStore, cookieParser);
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.favicon());
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.static(path.join(__dirname, 'public')));
app.use(express.logger('dev'));
app.use(cookieParser);
app.use(express.session({
store: sessionStore
}));
根据db.version()
Mongo shell的说法,我正在运行2.4.9,并且正在使用0.4.0版connect-mongo
。
似乎有很多人遇到了这个问题,但是似乎大多数人都解决了证书问题,我的本地mongo没有经过身份验证的保护,所以这不是问题。有任何想法吗?
正如我在您的评论中所说,本质上Express在会话存储完全连接之前就已接收连接。解决方案是等待连接发生,然后再允许您的应用程序开始监听。
您可以通过在创建MongoStore时使用回调或传入已经处于活动状态的连接来避免此问题。
var sessionStore = new MongoStore({ url: 'someConnectionUrl', db: 'audio-drop' }, function(e) {
var cookieParser = express.cookieParser('waytoblue');
app.use(cookieParser);
app.use(express.session({
store: sessionStore
}));
app.listen();
});
var mongoose = require('mongoose');
mongoose.connect('localhost', function(e) {
// If error connecting
if(e) throw e;
var sessionStore = new MongoStore({ mongoose_connection: mongoose.connection }),
cookieParser = express.cookieParser('waytoblue');
app.use(cookieParser);
app.use(express.session({
store: sessionStore
}));
app.listen();
});
问题内容: 我可以看到文档说我们可以在文档上设置,但不能在索引/索引上设置。还想知道如果我们设置它是否对性能有影响。 问题答案: 已为每个索引启用,但有效期为每个文档。 如果您希望索引“过期”,请删除它们。更简单,更高效。 是的,对性能有影响。Elasticsearch处理“过期”数据的“方式”是创建基于时间的索引。意思是,您每天或每周都会创建一个索引。在该索引中索引属于该日/周的所有内容。您决定
我正在尝试在MongoDb中插入数据并在ES上查看 mongo db中的数据在db:testmongo collection:person中 现在,当我做的时候 我得到了 但在浏览器上键入时 谢谢
我有几个集合共享以下相同的简单模式: 现在,我用Spring boot ' @ Document(collection = " XYZ ")'注释指定访问集合。因此,我必须在“@Document”注释本身中指定我的集合。然而,我更喜欢在我的SpringBoot配置文件中包含所有配置。 那么,问题是,有没有办法通过 application.properties 文件来配置“XYZ”?或者还有什么机制
有人能识别出以下代码的错误吗。特别是第一条dbms_输出线。第二张打印得很好。但第一个错误是: 第2行ORA-06550错误:第15行,第53列:PLS-00201:标识符“MYCOLL”必须声明ORA-06550:第15行,第1列:PL/SQL:忽略语句
我正在使用spring Boot编写rest API。我正在努力维护redis服务器上的用户会话。Redis在默认端口上启动并运行。我已经使用lettuce jar连接到redis服务器。但是好像我的会话没有在redis服务器上设置。我尝试使用uuid设置会话对象,它返回如下所示 从redis cli,我能够设置和获得关键值。 这是一个代码片段,我试图查看用户是否已经登录,取决于他们的活动会话,如
问题内容: 我在服务层方法上使用注释。 当我紧急加载@OneToMany集合字段时,一切工作正常,但是当我尝试访问LAZY加载的元素时,我发现Hibernate 对象为null。这显然给了我一个例外: 这是我的收藏字段: 我如何绑定hibernate会话以便将对象延迟加载到上下文中? 编辑 这是我的trancactionManager / entityManager配置 问题答案: 使用Threa