【发布时间】:2014-10-14 08:22:10
【问题描述】:
我在我的节点 js/express js 网站中成功设置了会话管理。我将会话数据存储在 mongo db 中。我希望会话对登录几周的用户有效。代码如下:
var cookieParser = require('cookie-parser');
var session = require('express-session');
var MongoStore = require('connect-mongo')(session);
app.use(cookieParser());
app.use(session({
store: new MongoStore({ mongoose_connection: db }),
secret: 'cookie_secret',
cookie: { maxAge: null }
}));
对于普通用户来说它工作得很好,但我的问题是网络爬虫,如谷歌机器人和 Facebook 机器人。我仍然希望他们抓取我的网站,但我不希望他们的会话存储在我的 mongo db 中。它占用了大量空间,而且存储空间每天都在增加,这让我花钱。
如何有选择地选择将哪些会话存储在数据库中。我可以检查req.headers['user-agent'],但是在我的代码中哪里使用它?如何告诉 express-session 有时不要存储会话?
【问题讨论】:
标签: node.js session express web-crawler