Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/session/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Session 点头。MongoDB中的会话存储应该使用哪个库_Session_Mongodb_Node.js - Fatal编程技术网

Session 点头。MongoDB中的会话存储应该使用哪个库

Session 点头。MongoDB中的会话存储应该使用哪个库,session,mongodb,node.js,Session,Mongodb,Node.js,我在MongoDB中找到了三个会话存储库:连接MongoDB,连接mongo,连接会话mongo 哪一个是最好的 编辑:因此,如果我要使用connect mongodb,我必须建立两个db连接。对于会话存储,首先: var connect = require('connect') , Db = require('mongodb').Db , Server = require('mongodb').Server , server_config = new Server('localho

我在MongoDB中找到了三个会话存储库:连接MongoDB连接mongo连接会话mongo

哪一个是最好的

编辑:因此,如果我要使用connect mongodb,我必须建立两个db连接。对于会话存储,首先:

var connect = require('connect')
  , Db = require('mongodb').Db
  , Server = require('mongodb').Server
  , server_config = new Server('localhost', 27017, {auto_reconnect: true, 
    native_parser: true})
  , db = new Db('test', server_config, {})
  , mongoStore = require('connect-mongodb');

connect.createServer(
  connect.bodyParser(),
  connect.cookieParser(),
  connect.session({
    cookie: {maxAge: 60000 * 20} // 20 minutes
  , secret: 'foo'
  , store: new mongoStore({db: db})
})
);
第二个用于我的猫鼬连接:

var mongoose = require('mongoose');
db = mongoose.connect('mongodb://localhost/test');
....
这是真的吗?

列在Connect的(会话存储)页面上,它拥有最多的追随者(111个),而且它的更新非常活跃(上次更新约8小时前),所以如果我是你,我可能会选择那个

编辑:

关于第二个问题,如何将connect mongodb与Mongoose一起使用,下面是一个示例:

var connect= require('connect'),
mongoose = require('mongoose'),
mongoStore = require('connect-mongodb'),
my_db = "mongodb://localhost/test",
db;

connect.createServer(
  ...
  connect.session({ store: mongoStore(my_db, secret: 'topsecret' }));
  ...
);

db = mongoose.connect(my_db);

Nodepad是一款真正的应用程序,使用Express、connect mongodb和Mongoose,您可以在此处签出主应用程序文件:

connect mongodb会自动为您连接。您将传入字符串,该字符串是数据库名称和可选的主机(默认为localhost)。下面是我们如何使用它

app.use(express.session({
    secret: "x2kjh2323hjhjk32hjk23uhi23",
    store: new MongoStore({host: "200.11.11.11", db: 'sessions'}),
    cookie: {maxAge: 604800000}
}))

来自API文档:不幸的是,从版本1开始。*我不能这么做。此版本与0.*版本不兼容。现在必须通过mongodb连接或服务器配置。更新时,我建议删除当前会话集合数据

已更新,以反映它只是一个字符串。它来自一个名为hosts的配置文件,这是必需的。我已经编辑了我的答案来回答您的第二个问题,请查看。事实上,截至2013年2月24日,connect mongo在每个指标上都优于connect mongodb。它还有大约20个星型和3个分叉,也在第三方中间件页面上列出,并且正在更积极地进行维护(connect mongodb自述文件目前以“需要维护者”标题开头)。此外,它们都可以从Mongoose对象获取连接设置。