【问题标题】:Is there any way to change the default session table field name in NodeJS?有什么方法可以更改 NodeJS 中的默认会话表字段名称?
【发布时间】:2011-09-26 11:27:56
【问题描述】:

我一直在使用 expressJS 和 connect-mongo 插件在 MongoDB 中保存会话数据,如下所示,

var conf = {
db: {
    db: dbconfig.mongo_db_name,
    host: dbconfig.mongo_host,
    username: '', 
    password: '', 
    collection: 'sessionDataTable'
},
    secret: '076ee61d63aa10a125ea872411e433b9',     
};

app.configure(function(){
    app.use(express.session({
        secret: conf.secret,
        maxAge: new Date(Date.now() + 3600000),
        store: new MongoStore(conf.db)
    }));
});

在connect-mongo中,他们提供了仅更改表名的选项,如果我想在“sessionDataTable”中添加/更改字段名,那么我该如何实现呢?请帮帮我!!!

【问题讨论】:

  • 您需要接受约定优于配置。为什么不能只使用会话管理库喜欢使用的字段名称?
  • @Thilo:在 Mongo Sharding 中添加的表“sessionDataTable”。
  • 我明白了。也许会问“如何为 connect-mongo 设置分片?”会得到更好的答案。

标签: mongodb node.js connect express


【解决方案1】:

要向会话添加额外数据,您必须使用 connect 提供的 req 对象的会话属性。

例如

app.get('/', function(req, res) {
  req.session.name = 'Test Name';
});

这应该将其添加到您在 MongoStore 中定义的集合中。

这是你的意思吗?

【讨论】:

  • 感谢您的回复。但我需要为表“集合:'sessionDataTable'”添加字段
  • 如果 'sessionDataTable' 集合是在 mongo 中创建的,那么执行上述操作应该将其添加到会话正在使用的任何集合中。
猜你喜欢
  • 2020-07-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-17
  • 1970-01-01
  • 1970-01-01
  • 2019-12-15
  • 1970-01-01
相关资源
最近更新 更多